环境

  • Ubuntu 16.04
  • Nginx
  • Certbot 0.22.2

添加安装源及基本配置

不同服务器和操作系统请参考 Certbot

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx 

安装 Certbot

我在安装过程中遇到了语言的设置问题,需要通过 export 解决

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
apt-get install letsencrypt

检查 Certbot 版本,确保版本号高于 0.22.0

certbot --version

申请 Wildcard 证书

sudo ./certbot-auto certonly \
--server https://acme-v02.api.letsencrypt.org/directory \
--manual --preferred-challenges dns \
-d domain.com -d *.domain.com -d domain.net -d *.domain.net

确保使用了 ACME v2 的 Endpoint 来申请 Wildcard 证书 https://acme-v02.api.letsencrypt.org/directory

*.example.com 域名申请的通配符证书不适用于 example.com 如有需要则应该单独申请

在申请过程中,针对每一个域名会弹出以下提示:

Please deploy a DNS TXT record under the name
_acme-challenge.example.com with the following value:
 
5GFgEqWd7AQrvHteRtfT5V-XXXXXXXXXXXXXX

Before continuing, verify the record is deployed.
Press Enter to Continue

此时需要在域名后台配置 DNS 信息,添加对应的 DNS TXT record 并填写正确的子域名 _acme-challenge.example.com 和对应的内容5GFgEqWd7AQrvHteRtfT5V-XXXXXXXXXXXXXX

更新 Wildcard 证书

通过 Certbot 申请的证书有效期为三个月,在到期前可以运行一下命令为之前申请的证书延长有效期:

./certbot-auto renew

参考

Creating Wildcard SSL Certificates with Let’s Encrypt – Michael Hansen (CSA/ASA)