聰明在於勤奮,天才在於積累。

使用Certbot獲取和更新Let’s Encrypt中的證書。

如果您使用CloudFlare來託管您的DNS,可以使用官方Let’s Encrypt客戶端Certbot的插件,您可以使用它來輕鬆獲取和更新Let’s Encrypt中的證書。

CloudFlare API憑據

由於我們將使用CloudFlare的DNS來驗證我們的域的Let’s Encrypt,我們將需要使用CloudFlare的API來動態創建一些驗證DNS記錄。

要獲取API密鑰,請登錄CloudFlare儀表板,轉到您的配置文件,然後單擊底部的“全局API密鑰”旁邊的“查看”。

現在,當您獲得密鑰並且您看到警告“像密碼一樣保護此密鑰!”時,這是輕描淡寫的。如果您遵循最佳做法,則您已通過雙因素驗證確保了CloudFlare帳戶的安全。現在,這個API密鑰甚至比密碼更強大,因為使用它的任何人都不必使用雙因素身份驗證。只需與帳戶和此API密鑰關聯的電子郵件地址即可。保護此密鑰甚至比密碼更好!

現在將您的憑據存儲在服務器上,僅存儲在root用戶可讀的文件中。我總是將它們存儲在一個名稱對我來說是邏輯的文件中,這些是CloudFlare的秘密憑證,只能由root訪問,即:
/etc/letsencrypt/dnscloudflare.ini

該目錄只能由root訪問:

# sudo chmod 0700 /etc/letsencrypt

而且文件也是:

# sudo chmod 0400 /etc/letsencrypt/dnscloudflare.ini

內容看起來有點像這樣。將電子郵件地址替換為您的帳戶電子郵件地址,將API密鑰替換為您之前在CloudFlare管理面板中查看的地址。

dns_cloudflare_email = "[email protected]"
dns_cloudflare_api_key = "aas123124ifsadf21312idsd2"

安裝Certbot和CloudFlare DNS身份驗證器插件

Certbot在Centos 7上可以用yum安裝:

# yum install -y python2-cloudflare python2-certbot-dns-cloudflare

Certbot本身及其插件都是用Python編寫的,可以用PIP安裝。如果您沒有安裝PIP,並且正在使用Ubuntu,則可以使用以下命令安裝:

# sudo apt install python-pip

如果您運行的是其他Linux發行版,我確信有類似的方法可以輕鬆安裝PIP。

現在,您可以使用PIP為Certbot安裝CloudFlare DNS身份驗證器插件。Certbot本身自然會成為插件的依賴項,所以你也會安裝Certbot:

# sudo pip install certbot-dns-cloudflare

現在您應該安裝Certbot “/usr/bin/certbot” or “/usr/bin/certbot-2″,並安裝並激活CloudFlare DNS Authenticator插件。

使用CloudFlare身份驗證器運行Certbot

現在,獲取新的通配符就像運行一樣簡單:

# /usr/bin/certbot certonly --dns-cloudflare -d example.com,*.example.com

這應該為* .example.com獲取一個新的通配符證書並存儲它 /etc/letsencrypt/live/example.com/fullchain.pem

自動續訂

現在,如果您運行/usr/bin/certbot renew,您的證書應該更新,如果它是時候這樣做。這將使用您保存的秘密憑據完成,因此不需要進行任何交互。如果您願意,可以創建一個crontab,如下所示:

1 5 * * * /usr/bin/certbot renew --quiet --post-hook "/usr/local/bin/nginx -s reload > / dev / null 2>&1

現在,您的證書將自動完全續訂,無需您進行任何交互。

贊(0)