在 Amazon Linux 2023 上安装 Let's Encrypt

在 Amazon Linux 2023 上安装 Let's Encrypt

我正在尝试在 Amazon Linux 2023 上使用 Let's Encrypt nginx 获取 SSL 证书。

  • 首先,我使用命令添加了 EPEL
    wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    
    sudo rpm -ihv --nodeps ./epel-release-latest-8.noarch.rpm
    
    并且安装没有问题
  • 然后我尝试了
    sudo yum install python3-certbot-nginx
    
    并收到错误消息:
    Problem: package certbot-1.22.0-1.el8.noarch requires python3-certbot = 1.22.0-1.el8, 
    but none of the providers can be installed
      - conflicting requests
      - nothing provides python3.6dist(setuptools) >= 39.0.1 needed by python3-certbot-1.22.0-1.el8.noarch
      - nothing provides python3.6dist(cryptography) >= 2.5.0 needed by python3-certbot-1.22.0-1.el8.noarch
      - nothing provides python3.6dist(configobj) >= 5.0.6 needed by python3-certbot-1.22.0-1.el8.noarch
      - nothing provides python3.6dist(distro) >= 1.0.1 needed by python3-certbot-1.22.0-1.el8.noarch
      - nothing provides /usr/bin/python3.6 needed by python3-certbot-1.22.0-1.el8.noarch
      - nothing provides python3.6dist(pytz) needed by python3-certbot-1.22.0-1.el8.noarch
      - nothing provides python(abi) = 3.6 needed by python3-certbot-1.22.0-1.el8.noarch
      (try to add '--skip-broken' to skip uninstallable packages)
    
  • 我也尝试过
    sudo dnf install python3-certbot-nginx
    
    但遇到了类似的错误。

我了解到我可能需要一个代码就绪构建器,但无法安装它。请问我怎样才能得到它。如果这不是问题,请问我做错了什么以及如何解决它?

答案1

/opt/certbot/bin/certbot我设法使用以下命令在 Amazon Linux 2023 中安装了 certbot :

sudo dnf install -y augeas-libs
sudo python3 -m venv /opt/certbot/
sudo /opt/certbot/bin/pip install --upgrade pip
sudo /opt/certbot/bin/pip install certbot

或者,如果您想要安装特定版本的 certbot,您可以将最后一个命令替换为:

sudo /opt/certbot/bin/pip install certbot==2.6.0

在我们的设置中,我们使用带有一些钩子的独立模式,而不是使用插件。如果你想使用 dns、apache 或 nginx 等插件,你应该将最后一个安装命令修改为pip install certbot-apache.

答案2

感谢 Jens 让我走上了正确的道路。但是,我发现我需要额外的步骤才能使其完全正常工作。您可能还需要特定 Web 服务器软件的模块,并且我希望能够从任何地方调用“certbot”作为命令。所以我必须更改最后一行并添加另一行来执行这些操作:

sudo dnf install -y augeas-libs
sudo python3 -m venv /opt/certbot/
sudo /opt/certbot/bin/pip install --upgrade pip
sudo /opt/certbot/bin/pip install certbot certbot-apache
sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot

根据需要进行更改以匹配您的 Web 服务器软件。

答案3

EPEL 8 版本的 Certbot 似乎是为 Amazon Linux 2023 中不可用的 Python 版本 (v3.6) 构建的。

我找到了这个请注意,这似乎表明 EPEL 存储库均不与 Amazon Linux 2023 兼容

根据有关安装 Certbot 的 Amazon Linux 2023 文档看起来他们建议使用pip默认版本的 Python3 将 Certbot 安装到虚拟环境中。您还应该能够pip install certbot-nginx获取该nginx插件

编辑

看起来链接的 AWS 文档不再包含安装说明certbot,但它们确实链接到官方certbot安装说明其中仍然提到这pip是替代安装方法之一。

答案4

sudo dnf install -y augeas-libs
sudo python3 -m venv /opt/certbot/
sudo /opt/certbot/bin/pip install --upgrade pip
sudo /opt/certbot/bin/pip install certbot certbot-nginx 

这对我有用,但符号链接不起作用,所以我直接从 /opt 位置使用 certbot

sudo /opt/certbot/bin/certbot certonly --nginx .... 

相关内容