如果使用 Let’s Encrypt 的泛域名 SSL 证书,采用 DNS 方式验证,并且将域名解析托管在 Lightsail 的话,可以参考下列经验。
1
| pip install certbot-dns-lightsail
|
- 该插件需要先配置 AWS 区域和访问凭证。区域设置必须为
us-east-1
。
- 在 AWS 处新建策略:
1 2 3 4 5 6 7 8 9 10 11 12 13
| { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lightsail:CreateDomainEntry", "lightsail:DeleteDomainEntry" ], "Resource": "arn:aws:lightsail:us-east-1:${YOUR-ACCOUNT-ID}:Domain/${YOUR-DOMAIN-ID}" } ] }
|
账户 ID 可以在 Lightsail 账户页面查看,资源 ID 没有直接查看的方法,需要借助 awscli
工具:
1
| aws lightsail get-domains --region us-east-1
|
- 在 AWS 账户处创建访问凭证,并新建以下配置文件(注意运行权限,创建在对应用户家目录下):
1 2 3 4 5 6 7 8
| [default] region=us-east-1
[default] aws_access_key_id=${YOUR-ACCESS-KEY-ID} aws_secret_access_key=${YOUR-SECRET-ACCESS-KEY}
|
1 2 3 4 5 6 7 8
| certbot certonly \ --authenticator dns-lightsail \ --dns-lightsail-propagation-seconds 70 \ --non-interactive \ --agree-tos \ -m 'mail@example.com' \ -d 'example.com' \ -d '*.example.com'
|