การติดตั้งและ Config SSL บนเว็บด้วย Certbot

การติดตั้ง SSL ด้วย Let’s Encrypt ผ่าน Certbot บน Linux
และเซท Auto Recert ทุกๆ สามเดือน

Recommend: Ubuntu 22.04

  1. Install Package Certbot
    sudo apt update
    sudo apt install certbot python3-certbot-apache -y
  2. Config Nginx
    vi /etc/nginx/conf.d/<domain>.conf
    เช่น
    vi /etc/nginx/conf.d/zealtechinter_com.conf
  3. วางข้อความด้านล่าง (ปรับแต่ง domain / ip address / port ให้ถูกต้อง)
    *********
    ด้านล่าง (nginx config)
    *********
  4. กด ESC แล้วพิมพ์ !wq จากนั้นกด Enter เพื่อ Save ไฟล์
  5. ตรวจสอบความถูกต้องของ syntax ด้วยคำสั่ง
    nginx -t
  6. กรณีไม่มี Error ให้ Restart nginx ด้วยคำสั่ง
    systemctl restart nginx
  7. พิมพ์คำสั่ง
    certbot --nginx -d <domain>
    จากนั้นกรอก email และรอจนกว่า certbot จะติดตั้งเสร็จ
  8. ทดสอบหน้าเว็บ โดยเรียกผ่าน https
  9. เซท Crontab ให้ re-cert ทุกๆ เดือน โดยพิมพ์คำสั่ง
    crontab -e
    เลือก 1 (ใช้ nano editor)
  10. พิมพ์ข้อความ
    0 2 * * MON /usr/bin/certbot --nginx-ctl /usr/sbin/nginx renew >> /var/log/certbot-cron.log 2>&1
    จากนั้นกด Ctl + x เพื่อ save

# nginx config

server {
    server_name <ip_address> <domain>;
    # set client body size #
    client_max_body_size 1024M;

    location / {
            proxy_pass                              http://<ip>:<port>/;
            proxy_set_header                        Host $host;
            proxy_pass_request_headers              on;
            proxy_set_header X-Real-IP              $remote_addr;
            proxy_set_header X-Forworded-For        $proxy_add_x_forwarded_for;
            proxy_set_header X-Forworded-Host       $server_name;
            proxy_set_header X-Forwarded-Proto      $scheme;
    }

    location /mnt/ {
            alias /app/mnt/;
    }
}