網上很多,但咱老人都懶得學習,我就寫一些筒單的操作吧,或許有人需要。
之前騰訊申請1年的免費證書,總是忘了到一年又得重新來,太麻煩了,現在商業證書也都是一年一簽了,還不如用這種免費的,自動續簽.布置好了,就不用管了.
系統: Debian/Ubuntu/Centos
使用的是 letsencrypt.org 的免費證書,官方客戶端。
安裝客戶端: certbot
最好都在 root用戶權限下。
Debian/ubuntu : apt install certbot
CentOS : yum install certbot
下面就說兩個主要命令,申請證書和續簽證書。
第一步: 申請證書:
命令行輸入:
certbot certonly --webroot -w /var/www/html -d hxm.cn -d www.hxm.cn
回車后,需要輸入(yes/no) 的全輸入 yes , 有一個地方需要輸入 EMAIL的,不寫也行,建議給個,證書快過期時官網會提前發郵件提醒。
這個是最常用,最省事的驗證方法,其它的,自已去查了,這里不說太多復雜的.
-d 參數,要申請的域名,最多100個,把你這個服務器上需要的都寫上就行了,也支持泛解析 *.xxx.net 但不建議用,因為泛解析不好維護,需要用DNS 驗證,反正可以寫多個域名,哪個主機用啥,你就在那個主機上 -d 就行了。
-w 參數是要指定 WEB 的根目錄,客戶端會在這個目錄下自動創建: .well-known 這個文件夾。
然后通過你添加的 -d 后面的域名,一個一個去訪問來驗證域名所有權。
運行后,官網會訪問你 http://hxm.cn/.well-known/xxxx 這樣的地址來驗證,域名是不是你的. 你加幾個-d 他都會去驗證。
這時如果你的nginx 已經有網站了,建議添加以下代碼到 server 虛擬主機配制中:
location /.well-known{
root /var/www/html;
}
這樣不會影響你的網站其它配制,反正 /var/www/html 目錄是所有 nginx 安裝后自帶的,很多人都不用它。
生成完證書后上面的配制也不要刪,以后續簽還會用的。
生成后的證書會放在:
/etc/letsencrypt/live/hxm.cn/
這個文件夾里,默認用的是你第一個 -d 域名做文件夾。
NGINX 需要調用的證書文件是兩個,一個是KEY 一個是CRT
ssl_certificate /etc/letsencrypt/live/hxm.cn/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/hxm.cn/privkey.pem;
第二步: 配制自動續簽.
免費證書有效是90天,但因為有了自動續簽,就不用在意那90天了。
就一個命令:
certbot renew
也會劍測證書還有多少時間過期,一般提前30內檢測才會更新,其它都是跳過。
建議加在計劃任務中去:
30 4 */14 * * certbot renew --deploy-hook "service nginx reload"
上面的意思是,每融14天的的早上4點30分檢測一下,
如果成功更新了,就運行 service nginx reload 命令讓NGINX重新載入配制。
注意: 申請證書失敗大多數情況都是 web 配制不對的問題,導至完法完成驗證域名所有權。其它的我還沒碰到過。上面是我用certbot 最省事的方案了.
配制好上面的以扣再也不用去維護SSL證書問題了,之前總是忘記續證書導至網站SSL證書過期。