Nginx安装配置HTTPS及更新SSL證書
最近在做Progressive Web App (PWA)的應用,發現Service Workers 只可以在https上承載。只好配置HTTPS,SSL用Let’sEncrypt免費證書。
1.首先是找到DNS服務商的API
可到 dnsapi · acmesh-official/acme.sh Wiki (github.com) 中查詢
例如是name.com服務商的是用這樣

先到 https://www.name.com/account/settings/api 找API的Username和Token,之後在終端輸入下方命令,namecom的API是有2個PRODUCTION和DEVELOPMENT/TEST ENVIRONMENT,記得是PRODUCTION,之後要加伺服器的IP加入WHITELISTED IPS。
1 | export Namecom_Username="testuser" |
配置HTTPS命令
如果網站本身用LNMP架構,所以要加上SSL只要用命令
lnmp dnsssl namecom
注意命令中的namecom是指DNS服務商,看Github中--dns dns_namecom有些可能是簡稱如cloudxns是cx等等…
如果不是就要安裝 ACME Shell script
安裝會要求輸入網站,網站目錄,是否啟用指定功能等等
更新SSL證書
因為Let’sEncrypt免費證書只有3個月效期,如果要更新SSL證書,可以用下方命令更新證書
"/usr/local/acme.sh"/acme.sh --cron --home "/usr/local/acme.sh"
也可以加入crontab 例行性工作排程來完全自動化更新證書
2.強制將 HTTP重定向HTTPS
如果是用LNMP架構上SSL,HTTPS的設定檔會自然生成
如果是單一網域設定檔會在/usr/local/nginx/conf/nginx.conf
如果是多重網域(Virtual Host),設定檔會在/usr/local/nginx/conf/vhost/
只要在設定檔中的80 port server 加上 return 301 https://$server_name$request_uri; 就可以
1 | server { |