使用Let‘s Encrypt創建免費SSL證書(官方文檔自動獲取泛域名證書還不完善)

網絡安全越來越重要,很多的網站都開始使用https來增加網站的安全性,Let’s Encrypt 最近支持了泛域名SSL
證書,這樣一個域名只需要一個SSL證書就搞定了,之前阿里云等云服務商提供了免費的SSL證書,但是只支持一個子域名一個證書,最多20個(一般人其實夠用了),但是申請多個證書還是比較麻煩,而且很重要的一個原因,云服務商提供的通配符證書價格很貴,使用Let's Encrypt費用就可以省了,唯一需要做的就是要進行證書續期。

申請域名

為了演示,需要申請一個免費域名,我是在freenom申請的,freenom自帶的有免費的DNS解析,但是在國內的體驗不是很好所以為了更好的體驗,使用dnspod。

免費的域名和DNS服務商有很多,大家可以自己去選擇,上面只是舉個例子。

我申請的域名是rubys.ml,可以免費使用一年,續費的話不到10刀/年。

配置Let's Encrypt 單域名

首先訪問Let's Cncrypt官網Get Started,然后會提供兩種方式,With Shell AccessWithout Shell Access

  • With Shell Access(官方推薦通過shell進行部署)
    使用Certbot ACME客戶端進行部署,它可以自動執行證書頒發和安裝,而不用停機,它很容易使用,適用于多種操作系統,并且具有出色的文檔。
    WX20180318-122540@2x.png

訪問certbot,選擇自己使用的服務器和操作系統。有自動化和高級兩種模式可以選擇。這里選擇自動化。

  • 安裝系統擴展包
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum -y install yum-utils
yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
  • 安裝certbot
sudo yum install certbot-nginx
  • 運行certbot插件生成證書
sudo certbot --nginx
WX20180318-122540@2x.png
  • 重啟nginx
systemctl restart nginx

訪問www.rubys.ml,發現鏈接自動定向到https://www.rubys.ml

增加自動續期

crontab -e
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew

上面的方法是單域名證書的創建

配置Let's Encrypt 泛域名

如果配置泛域名,還需要安裝一個 Certbot's DNS plugins 插件
目前的代碼還不夠完善,目前根據文檔,可以看到只支持,通過Docker 安裝,可以一次性獲取下面的服務商的支持

  • certbot-dns-cloudflare
  • certbot-dns-cloudxns
  • certbot-dns-digitalocean
  • certbot-dns-dnsimple
  • certbot-dns-dnsmadeeasy
  • certbot-dns-google
  • certbot-dns-luadns
  • certbot-dns-nsone
  • certbot-dns-rfc2136
  • certbot-dns-route53

目前支持的云服務商還不多
阿里云的話可以使用如下腳本
https://github.com/Neilpang/acme.sh
從云服務商那里獲取對應的APIKey,APISecret,填入腳本,具體參考上面地址中的文檔。

未完待續。。。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容