官方安裝教程:https://certbot.eff.org/lets-encrypt/centosrhel7-nginx
之前一直使用軍哥的 Lnmp 或者寶塔,所以配置 https 都有內置命令。
這次獨立的學習 Nginx ,所以在單獨的學習配置 Https 證書。
由於服務器上面只安裝有了 Nginx ,所以我們來安裝 certbot
yum -y install yum-utils
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
yum install certbot python2-certbot-nginx
我們需要提前配置好 nginx 的 conf 文件,確保域名可正常訪問,然後執行命令安裝證書:
# nginx-server-root 爲指定目錄,後面的 dmain.com 爲綁定域名
certbot --nginx --nginx-server-root=/usr/local/nginx/conf -d domain.com
#執行時可能會報相關錯誤,請確保安裝 nginx 安裝了 ssl 模塊並且依賴庫 open ssl
顯示如下,證明安裝成功:
然後對 nginx 執行重新啓動,第一次沒重新啓動,發現加上了 https 後無法訪問。
#停止
/usr/local/nginx/sbin/nginx -s stop
#啓動
/usr/local/nginx/sbin/nginx
因爲沒有使用 301 扥強制跳轉到 https ,所以訪問網址時手動加上 https 訪問,發現已出現綠色圖標。
接下來爲了提高 https 的訪問性能,我們配置 OCSP:
使用 certbot 生成的證書有以下幾個文件:
cert.pem: 服務端證書
chain.pem: 瀏覽器需要的所有證書但不包括服務端證書,比如根證書和中間證書
fullchain.pem: 包括了cert.pem和chain.pem的內容
privkey.pem: 證書的私鑰
OCSP 所需要的證書說明:
我們可以點擊瀏覽器的證書圖標來查看證書鏈,一般都三層。
分別是:DST 根證書→Let’s Encrypt 中間證書→網站自己的網站證書。
如果我們的網站要開啓 OCSP ,我們需要的證書只需要前兩個,而且順序一定要爲 子證書在前,服務端證書在後
在這裏我們觀察到 certbot 生成的 fullchain.pem 證書正好符合 OCSP 的規範,所以我們默認使用它。
當然官網有說明,如果一致也可以省略填寫:
若 ssl_certificate 指令指定了完整的證書鏈,
則 ssl_trusted_certificate 可省略。
接下來我們在 nginx 的域名配置文件中新增如下,前三行也是推薦的配置,配置 DNS 因爲我是海外服務器,可自行修改
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/ssl.domain.com/fullchain.pem;
resolver 8.8.8.8 8.8.4.4 1.1.1.1 valid=60s;
resolver_timeout 2s;
此步我參考了此作者的博文:https://24dian30.com/manage/environment-manage/1818.html
然後我們執行對 nginx 指定重新加載:
/usr/local/nginx/sbin/nginx -s reload
如何檢測呢,我們打開 https://www.ssllabs.com/ssltest/
然後屬於要檢測的域名,稍等片刻檢測完成,然後查看結果頁面,發現已經成功開啓。
當然你也可以使用 openssl 命令來檢測:
# openssl s_client -connect ssl.domain.com:443 -status 2>/dev/null | grep -A 17 'OCSP response:'
成功則返回以下:
OCSP Response Data:
OCSP Response Status: successful (0x0)
Response Type: Basic OCSP Response
Version: 1 (0x0)
Responder Id: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
Produced At: Dec 20 02:16:00 2019 GMT
Responses:
Certificate ID:
Hash Algorithm: sha1
Issuer Name Hash: 7EE66AE7729AB3FCF8A220646C16A12D6071085D
Issuer Key Hash: A84A6A63047DDDBAE6D139B7A64565EFF3A8ECA1
Serial Number: 039913BCEB7B7CED78B4D5E3CC74463C0DA1
Cert Status: good
This Update: Dec 20 02:00:00 2019 GMT
Next Update: Dec 27 02:00:00 2019 GMT