前言
網(wǎng)站 https化
已是大勢所趨,我的個人blog也是老早之前就想搞的,總是沒時間。 今天休假,在家折騰了一下,
的圖標終于變成 綠色的小鎖
了,美美噠!
Jerry Qu
大神研究的很深,我把自己的操作步驟整合了一下,做成一個小工具,也許對大家有用! https://github.com/zxlie/website-ssl.sh
二、使用方式
1、下載
# 下載工具
curl -so xx.sh https://raw./zxlie/website-ssl.sh/master/website-ssl.sh
chmod 0755 website-ssl.sh
沒錯,就這么下載了就能用了!當(dāng)然,github源文件的下載,你也可以用你熟悉的任何方式!
注意:此工具會使用到 openssl
命令,請務(wù)必保證你的機器上已安裝此工具!
2、配置
2.1 website-ssl.sh的配置
用任意編輯工具打開 website-ssl.sh
文件,針對頭部的如下幾個配置項進行 按需配置
:
# ************************ 配置區(qū)域 START ******************************
# 你的ssl主目錄位置
ssl_dir="/home/work/www/ssl"
# nginx中配置的,給 Let's Encrypt 驗證用的
challenges_dir="/home/work/www/challenges/"
# 按照你的需求進行配置,多個域名用空格分開
websites="your-website.com www.your-website.com"
# ************************ 配置區(qū)域 END ********************************
2.2 nginx conf文件的配置
本工具是用 Let's Encrypt
來實現(xiàn)的 https
,所以證書的申請需要一個域名驗證的過程; 也就是需要對目標站點的Nginx增加一個 location
,形如:
# CA認證
location ^~ /.well-known/acme-challenge/ {
# 注:這里的$challenges_dir請?zhí)鎿Q成你自己的真實目錄,如:/home/work/www/challenges/
alias $challenges_dir;
try_files $uri =404;
}
3、使用
# 直接執(zhí)行腳本,獲取幫助信息
sh website-ssl.sh
結(jié)果:
網(wǎng)站ssl自動化工具(v1.0)使用方法:
usage: sh website-ssl.sh -v | csr | pem | nginx | renew | crontab | upgrade
-v 查看工具的版本號
csr 根據(jù)域名配置生成csr證書文件(For pem)
pem 生成 Let's Encrypt 認可的pem證書文件
nginx 獲取nginx配置文件Demo
renew 更新pem證書文件
crontab 自動更新pem證書文件的crontab任務(wù)
upgrade 升級「website-ssl.sh」工具到最新版
4、實際使用案例
step1:創(chuàng)建 pem
文件
sh website-ssl.sh pem
注:這一步會自動為我們創(chuàng)建 domain.key
文件和 ssl-encrypt.pem
文件
step2:獲取 nginx
配置的Demo
sh website-ssl.sh nginx
注:如果自己知道怎么配置nginx,這一步都可以忽略
step3:配置自己的 nginx conf
文件
核心就是配置一下這個:
server {
listen 443 ssl;
server_name your-website.com;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES
ssl_prefer_server_ciphers on;
ssl_certificate /home/work/www/ssl/ssl-encrypt.pem;
ssl_certificate_key /home/work/www/ssl/domain.key;
ssl_session_timeout 5m;
...
}
step4:重新載入 nginx
配置文件, https
完美啟用
service nginx reload
5、 csr
文件強制更新
此種情況,只針對「需要走https的域名有增減」的情況,我們可以手動執(zhí)行命令來更新 csr
文件:
sh website-ssl.sh csr
只更新 csr
文件是沒用的,還需要再次更新 pem
文件:
sh website-ssl.sh pem
6、ssl證書有效期問題
由 Let's Encrypt
機構(gòu)頒發(fā)的證書,默認只有90天的有效期,所以我們需要有一個證書更新的機制:
sh website-ssl.sh renew
此命令會重新生成簽名證書,并重啟nginx,使得站點的 https
壽命延續(xù)
當(dāng)然,我們完全可以不用手動來做這件事情,用 crontab
,省事又省心:
sh website-ssl.sh crontab
把輸入的內(nèi)容,添加到root賬號下的crontab列表中,即可:
# Let’s Encrypt 簽發(fā)的證書只有90天有效期,可以設(shè)置為每月1號自動更新
0 0 1 * * sh /home/work/www/ssl/website-ssl.sh renew >/dev/null 2>&1
到此,你可以開開心心的用了!
7、工具升級方法
但凡是個工具,都可能會有bug、或者新功能迭代,等等,所以,咱們可以通過如下方式,將工具升級到最新版本:
sh website-ssl.sh upgrade
當(dāng)然,要查看工具的版本號,也是有命令的:
sh website-ssl.sh -v
#或者
sh website-ssl.sh version
三、意見反饋
Site: https://www.
Mail: xianliezhao@foxmail.com
|