cod*_*ess 1 dns ssl amazon-route53 lets-encrypt certbot
我需要从 LetsEncrypt 获取 AWS Route 53 上托管的域的证书。我没有暴露任何端口 80 或 443,因为服务器用于 VPN 并且没有公共访问权限。
因此,实现此目的的唯一方法是通过路由 53 的 DNS 验证。
到目前为止我已经安装了 certbot 和 dns-route53 插件
sudo snap install --beta --classic certbot
sudo snap set certbot trust-plugin-with-root=ok
sudo snap install --beta certbot-dns-route53
sudo snap connect certbot:plugin certbot-dns-route53
Run Code Online (Sandbox Code Playgroud)
我在我的 AWS 账户中创建了一个可以访问 Route53 的特殊用户,并且在 ~/.aws/config 和 ~/.aws/credentials 中添加了访问密钥 id 和秘密访问密钥,如下所示
[default]
aws_access_key_id=foo
aws_secret_access_key=bar
Run Code Online (Sandbox Code Playgroud)
基本上遵循此处给出的每个步骤:https ://certbot-dns-route53.readthedocs.io/en/stable/
现在,当我运行以下命令时:
sudo certbot certonly -d mydomain.com --dns-route53
Run Code Online (Sandbox Code Playgroud)
它给出以下输出:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator dns-route53, Installer None
Requesting a certificate for mydomain.com
Performing the following challenges:
dns-01 challenge for mydomain.com
Cleaning up challenges
Unable to locate credentials
To use certbot-dns-route53, configure credentials as described at https://boto3.readthedocs.io/en/latest/guide/configuration.html#best-practices-for-configuring-credentials and add the necessary permissions for Route53 access.
Run Code Online (Sandbox Code Playgroud)
我转到错误消息中给出的文档:https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html#best-practices-for-configuring-credentials
但我不认为我做错了什么
我什至通过这样做进入了根级别,sudo su并将 AWS 密钥导出为环境变量,甚至还导出了 home 中的 AWS 密钥,但它仍然抛出相同的错误。
所以我也遇到了同样的问题,这可能是因为您运行 certbot sudo,您什么时候这样做,您使用的任何用户~/都会被忽略,因为它正在查找/root/.
我通过(centos)修复了它,这是我的用户,我有.aws/目录config和credential文件。
sudo -s
ln -s /home/centos/.aws/ ~/.aws
Run Code Online (Sandbox Code Playgroud)
ls -lsa ~/.aws
... /root/.aws -> /home/centos/.aws/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1604 次 |
| 最近记录: |