StartSSL + nginx = https

  1. สร้าง private key ก่อนเพื่อที่จะสร้าง CSR (Certificate Signing Request) ที่จะต้องใช้กับ nginx

     openssl genrsa -des3 -out cogto.com_pwd.key 4096
    

    อันนี้ยังไงก็บังคับใส่ password ไม่มีข้อยกเว้น ก็ใส่ไปและจำให้ได้ (ไม่ต้องจำตลอดกาลก็ได้ เพราะเด๋วก็สร้าง key ใหม่แบบไม่มี password ตอนใช้จริง

  2. สร้าง certificate จาก key ของเรานั่นแหละเพื่อจะใช้กับ StartSSL

     openssl req -new -sha256 -key cogto.com_pwd.key -out cogto.com.csr
    
  3. เข้าไปที่ StartSSL --> Certificates Wizard --> Web Server SSL/TLS Certificate

    • ใส่ๆ subdomain ที่อยากจะใส่ไป
    • เลือกใช้ key ที่สร้างเองแล้วก็ copy & paste จาก cat cogto.com.scr ไปให้หมด
    • StartSSL (ตั้งแต่ปี May 2016) เค้าก็จะให้มาเป็น zip ก็แตกไปแล้วเอาของ nginx ไปใช้ได้เลย จริงๆมันคือ cat file ย่อยๆมารวมกัน เพราะ nginx ไม่รับหลาย file
  4. (optional) ก่อนที่จะถึงขั้นจะเอาไปใส่ใน nginx ก็ต้อง clear password ของ key ก่อน ถ้าไม่ทำทุกครั้งที่ restart nginx มันก็จะถาม password ทุกครั้ง :dizzy_face: เพราะมันต้องใช้ key นี่ ก็เลยต้องทำงี้

     openssl rsa -in cogto.com_pwd.key -out pwdless-cogto.com.key
    
  5. ก็เอาไปใส่ nginx ซะ

    server {
    listen 443 ssl;
    server_name cogto.com;

     ssl_certificate         /opt/cogto/private/1_cogto.com_bundle.crt;
     ssl_certificate_key     /opt/cogto/private/pwdless-cogto.com.key;
    
     ssl_session_cache shared:SSL:10m;
     ssl_session_timeout  5m;
    
     ssl_protocols  TLSv1 TLSv1.1 TLSv1.2; 
    
     ssl_ciphers  "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH !RC4";
     ssl_prefer_server_ciphers   on;
    
     ...
    

    }

เท่านี้ก็ทำหน้ายิ้มๆ ใช้ SSL ใช้ https ได้อยากน่าภาคภูมิใจ :laughing: