從Let’s Encrypt獲取免費的HTTPs證書

Let’s Encrypt也是一個 CA 機構,但這個 CA 機構是免費的,官方推薦的是使用Certbot,但是個人感覺那個工具配置有點兒繁瑣,對于阿里云DNS支持不好(也可能是自己不會用),這次介紹一下另外一個工具,github:https://github.com/Neilpang/acme.sh

1:安裝

curl  https://get.acme.sh | sh

2:生成證書

認證方式分為http和DNS兩種

http驗證

http驗證需要在服務器上進行,因為nginx、apache、80端口驗證這些有自動化操作在本地執行,待申請到證書后,nginx、apache需要手動配置一下。

//apache or nginx:使用這兩種服務器,acme.sh可以自動修改配置完成驗證,最后再恢復配置,前提是申請證書的這個域名需要在這兩種服務器中有配置
acme.sh --issue  -d mydomain.com   --apache
acme.sh --issue  -d mydomain.com   --nginx
//根目錄:acme.sh 會全自動的生成驗證文件, 并放到網站的根目錄, 然后自動完成驗證. 最后刪除驗證文件
acme.sh  --issue  -d mydomain.com -d www.mydomain.com  --webroot  /home/wwwroot/mydomain.com/
//80端口:如果服務器沒有網站,80端口是空閑的,acme.sh也可以自己臨時充當web服務器驗證
acme.sh  --issue -d mydomain.com   --standalone
DNS驗證

DNS的強大之處在于不需要任何服務器, 不需要任何公網ip,同時支持通配符,這里不介紹手動添加txt 記錄完成驗證的方式,那種方式比較麻煩,這里介紹阿里云自動驗證的方式。
首先要在阿里云配置accesskey,登陸阿里云,在點擊我的->accesskeys->創建AccessKeys->得到AccessKey ID和Access Key Secret

//1:配置阿里云賬號
vim .acme.sh/account.conf
//添加key和secret
#LOG_FILE="/home/xx/.acme.sh/acme.sh.log"
#LOG_LEVEL=1

#AUTO_UPGRADE="1"

#NO_TIMESTAMP=1
SAVED_Ali_Key='xxxxxx'
SAVED_Ali_Secret='xxxxxx'
USER_PATH='/sbin:/bin:/usr/sbin:/usr/bin'

//2:通過阿里云DNS自動獲取通配符證書
.acme.sh/acme.sh  --issue --dns dns_ali -d '*.mydomain.cn'

3:七牛云的https配置

fullchain 是內容,domain.key 是私鑰

4:實例

acme更新https證書

// 一起搞兩個域名通配符
acme.sh --issue --dns dns_ali -d mydomain.com -d '*.mydomain.com' -d mydomain2.com -d '*.mydomain2.com'
sudo cp /home/xxx/.acme.sh/mydomain.com/mydomain.com.cer /srv/ssl/mydomain.com/
sudo cp /home/xxx/.acme.sh/mydomain.com/mydomain.com.key /srv/ssl/mydomain.com/
sudo cp /home/xxx/.acme.sh/mydomain.com/fullchain.cer /srv/ssl/mydomain.com/

測試是否更新成功

echo | openssl s_client -servername mydomain.com -connect mydomain.com:443 2>/dev/null | openssl x509 -noout -dates
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。