我有一个小脚本,每当需要续订时都会生成新的 Let's Encrypt 证书,然后将新证书导入到我们的 AWS 帐户,以便我们可以使用它们将 Cloudfront 请求签名到我们的自定义子域。
我在我们的任何其他服务器上都没有遇到过这个问题,但是当我按照此处的说明安装 certbot 时https://certbot.eff.org/all-instructions/#debian-9-stretch-apache,我可以成功生成证书。
然后,当我使用 awscli 安装时pip install awscli --upgrade --user
,我还可以运行 aws 命令来导入我的证书。
但是当我返回并运行 certbot 续订时,我收到此错误
发生意外错误:ContextualVersionConflict: (botocore 1.7.47 (/root/.local/lib/python2.7/site-packages), Requirement.parse('botocore<1.6.0,>=1.5.0'), set (['boto3']))
如果我强制将 botocore 安装到版本 1.5.95(显然是 certbot 的最高支持版本),那么 certbot 工作正常,但我从 awscli 收到此错误
回溯(最近一次调用最后一次):文件“/root/.local/bin/aws”,第 19 行,导入 awscli.clidriver 文件“/root/.local/lib/python2.7/site-packages/awscli/clidriver .py”,第 24 行,来自 botocore.history import get_global_history_recorder ImportError:没有名为历史的模块
这是怎么回事?为什么这在另一台版本为 1.7.47 的 botocore 服务器上可以工作,但在这台服务器上却不行?
答案1
我有类似的问题。
sudo certbot certonly --dns-route53 -d example.com
An unexpected error occurred:
VersionConflict: (botocore 1.10.58 (/usr/lib/python2.7/site-packages),
Requirement.parse('botocore>=1.6.0,<1.7.0'))
你的帖子帮助我找到了https://github.com/venth/aws-adfs/issues/52建议使用 pip uninstall botocore boto3 && pip install boto3 来解决该问题。
sudo pip uninstall botocore boto3 && sudo pip install boto3
解决了我的设备上的问题。