購(gòu)買 ssl 證書
既然要加密提高網(wǎng)站安全級(jí)別,那么選擇一款性價(jià)比合適的 ssl 在所難免。ssl 證書購(gòu)買途徑有很多,也有一些是免費(fèi)的,試過一些免費(fèi) ssl 證書但覺得續(xù)簽麻煩,不太穩(wěn)定,也不安全。國(guó)內(nèi) ca 機(jī)構(gòu) cfca 中國(guó)金融認(rèn)證中心 ssl 產(chǎn)品研發(fā)負(fù)責(zé)人也表示:網(wǎng)站管理人員及 ca 機(jī)構(gòu)都應(yīng)對(duì)免費(fèi)證書持謹(jǐn)慎態(tài)度。因?yàn)楦顿M(fèi)的也不是很貴,就選了比較常用的 comodo positivessl,在 gogetssl 買比官網(wǎng)便宜不少。
我們以 gogetssl 家的 Comodo PositiveSSL 證書為例,記錄 nginx 配置安裝 ssl 證書的過程,具體原理就不說了。
準(zhǔn)備證書
首先需要購(gòu)買證書,Comodo PositiveSSL,三年只要 9.65 美金。
購(gòu)買完成后,郵件會(huì)得到幾封郵件,其中包含 key 代碼、證書壓縮包等附件,解壓之會(huì)得到 4 個(gè)文件。AddTrustExternalCARoot.crt、COMODORSAAddTrustCA.crt、COMODORSADomainValidationSecureServerCA.crt、www_91zll_net.crt,這就是我們要用到的證書了。
串聯(lián)證書
執(zhí)行合并命令生成新文件 ssl-bundle.crt
cat?www_91zll_net.crt?COMODORSADomainValidationSecureServerCA.crt?COMODORSAAddTrustCA.crt?AddTrustExternalCARoot.crt?>?ssl-bundle.crt
生成私鑰
將剛才gogetssl 發(fā)的郵件里的 key 代碼,即 —–BEGIN PRIVATE KEY—– 和 —–END PRIVATE KEY—– 之間的代碼(包含這兩行)復(fù)制保存為 91zll_net.key 文件。利用 KEY私鑰格式轉(zhuǎn)換工具 來進(jìn)行轉(zhuǎn)換一下,從PKCS8 Key 轉(zhuǎn)換為 RSA Key。
創(chuàng)建一個(gè)證書存放路徑
mkdir?-p?/etc/ssl/private/
將前面生成的 91zll_net.key 和 ssl-bundle.crt 上傳服務(wù)器,一般放在 /etc/ssl/private/ 目錄下。
修改 Nginx 配置
下面是我 nginx 關(guān)于 ssl 部分的配置,因?yàn)橐质褂?https,故將 80 端口重定向到 https 下。
server?{ ???listen?80; ???server_name?91zll.ne?www.91zll.net ???location?/?{ ???rewrite?(.*)?https://www.91zll.net$1?permanent; ?????} } server?{ ???listen?443?ssl; ???server_name?91zll.net?www.91zll.net; ??? ???ssl?on; ???ssl_certificate?/etc/ssl/private/ssl-bundle.crt; ???ssl_certificate_key?/etc/ssl/private/91zll_net.key; ???ssl_stapling?on; ???ssl_stapling_verify?on; ???resolver?8.8.8.8?8.8.4.4?valid=300s; ???resolver_timeout?5s; ???ssl_session_cache?shared:SSL:10m; ???ssl_session_timeout?5m; ???ssl_protocols?TLSv1?TLSv1.1?TLSv1.2; ???ssl_ciphers?"ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; ???ssl_prefer_server_ciphers?on; }
具體參數(shù)的含義就不多說了,請(qǐng)自行g(shù)oogle。使用前先測(cè)試一下。
nginx?-t
檢測(cè)沒問題后,重啟 nginx
?service?nginx?restart