憑證是向 Godaddy 買的
根據某些 SSL 測試結果,G 的憑證鍊有怪(怎怪我也不是很清楚,反正我現在可以用就好)
在 nginx 的環境下,要把從 G 上下載的檔案併成一個(用cat ),詳細可以參考這裡
Go爸 社的憑證收到時會有兩個檔案
一個是隨機數字加英文字母亂碼的檔案,如 3c5f6757e7a78b38.crt
另一個會是 gd_bundle-g2-g1.crt
第一個檔案是 SSL 憑證,第二個是 G爸 社的中間憑證(intermediate certificate bundle)
合併指令:
cat 3c5f6757e7a78b38.crt gd_bundle-g2-g1.crt > example.com.chaind.crt
然後再設定到 conf 裡面(看你要放 nginx.conf 還是 vhost 的都可以)
基本設定如下:
ssl_certificate 這邊就放你剛併的檔案的詳細路徑與檔名
ssl_certificate_key 這邊放你產的私鑰
再來是 listen,我的 listen 有開 ssl & http2,所以是長的下面那個樣子:
listen 443 ssl http2;
再來一個是
ssl_stapling_verify on;
不過我還沒試成功
再來一個是
ssl_protocols TLSv1.1 TLSv1.2;
這是限制使用的 TLS 版本
再來一個是
補充產 4096 的快速方法:openssl dhparam -dsaparam -out dhparam_4069.pem 4096
經測試這個方法很快
所以,我的設定如下:
ssl_certificate example.com.chain.crt;
ssl_certificate_key example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_dhparam dhparam_4069.pem;
ssl_stapling on;
ssl_stapling_verify on;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
note:
ssl on;
這一個參數建議不要加,官網建議在 listen 後面加 ssl 比較好。我這邊的測試狀況是發現加了這個參數後,原先的 http 就都不通了,所以要 http & https 共存的話,這個不要用,換成 listen 443 ssl http2;
根據某些 SSL 測試結果,G 的憑證鍊有怪(怎怪我也不是很清楚,反正我現在可以用就好)
在 nginx 的環境下,要把從 G 上下載的檔案併成一個(用cat ),詳細可以參考這裡
Go爸 社的憑證收到時會有兩個檔案
一個是隨機數字加英文字母亂碼的檔案,如 3c5f6757e7a78b38.crt
另一個會是 gd_bundle-g2-g1.crt
第一個檔案是 SSL 憑證,第二個是 G爸 社的中間憑證(intermediate certificate bundle)
合併指令:
cat 3c5f6757e7a78b38.crt gd_bundle-g2-g1.crt > example.com.chaind.crt
然後再設定到 conf 裡面(看你要放 nginx.conf 還是 vhost 的都可以)
基本設定如下:
ssl_certificate 這邊就放你剛併的檔案的詳細路徑與檔名
ssl_certificate_key 這邊放你產的私鑰
再來是 listen,我的 listen 有開 ssl & http2,所以是長的下面那個樣子:
listen 443 ssl http2;
再來一個是
ssl_stapling_verify on;
不過我還沒試成功
再來一個是
ssl_protocols TLSv1.1 TLSv1.2;
這是限制使用的 TLS 版本
再來一個是
ssl_dhparam
這個要先用 openssl 去產 key,我用 c3.large 產 4096 的大概要十來分鐘
做法是:
openssl dhparam -out dhparams.pem 2048
openssl dhparam -out dhparams.pem 2048
補充產 4096 的快速方法:openssl dhparam -dsaparam -out dhparam_4069.pem 4096
經測試這個方法很快
所以,我的設定如下:
ssl_certificate example.com.chain.crt;
ssl_certificate_key example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_dhparam dhparam_4069.pem;
ssl_stapling on;
ssl_stapling_verify on;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
如果有很多 virtual host 的話,可以把上述設定放在 nginx.conf 中
然後個別 virtual host 的設定檔再去決定要不要開 https
note:
ssl on;
這一個參數建議不要加,官網建議在 listen 後面加 ssl 比較好。我這邊的測試狀況是發現加了這個參數後,原先的 http 就都不通了,所以要 http & https 共存的話,這個不要用,換成 listen 443 ssl http2;
留言
張貼留言