我正在遵循本指南,了解如何在 Amazon Linux 2023 上配置 SSL/TLS。建议使用以下方式获取 CA 签名的证书证书机器人。要获取 Certbot,建议安装 Snap。
我已经尝试了几种方法,但无法安装任何先决条件:
sudo yum install snapd
Error: Unable to find a match: snapd
sudo amazon-linux-extras install epel
sudo: amazon-linux-extras: command not found
sudo yum install -y amazon-linux-extras
Error: Unable to find a match: amazon-linux-extras
答案1
老实说,没有充分的理由来运行 certbot,它实际上只是足够的代码来与letcencrpyt 交互并快速修改一些配置文件。尤其如果你想让它真正完成修改系统的工作,snap 的隔离功能就没用了。
亚马逊不建议使用 snap 安装 certbot;这就是这个网站https://eff-certbot.readthedocs.io/en/stable/install.html#installation其中将其列为多种方式之一。
您只需使用同一页面上描述的 pip 方法安装最新的 certbot 即可。与使用 snap 相比,它的开销要少得多(对于他们的推荐我真的很不满意;而且,我认为他们基于 pip 的描述有一些小错误)。快速了解其工作原理:
https://certbot.eff.org/instructions?ws=nginx&os=pip
# create an isolated python environment for certbot purposes alone
python3 -m venv /opt/certbot
# Modify environment for the current shell only to make python modify
# the virtual environment and not your system libraries
source /opt/certbot/bin/activate
# Install certbot
pip install certbot
就是这样。如果您稍后想要将 certbot 作为独立程序运行,
/bin/bash -c "source /opt/cerbot/bin/activate; certbot"
这样做。
您当然也可以将其放入 shell 脚本中,例如
/usr/bin/certbot:
#!/bin/bash
source /opt/certbot/bin/activate
/opt/certbot/bin/certbot "$@"
使该可执行文件 ( chmod 755 /usr/bin/certbot
) 并从此简单地用作certbot
命令。
您可能还想设置一个 systemd 计时器来定期自动更新您的证书。
这很简单:
- 使用此内容创建文件 /lib/systemd/system/certbot.service
[Unit]
Description=Certbot
Documentation=https://certbot.eff.org/docs
[Service]
Type=oneshot
ExecStart=/bin/bash -c "source /opt/cerbot/bin/activate; certbot -q renew"
PrivateTmp=true
和一个文件 /lib/systemd/system/certbot.timer :
[Unit]
Description=Run certbot twice daily
[Timer]
OnCalendar=*-*-* 00,12:00:00
RandomizedDelaySec=43200
Persistent=true
[Install]
WantedBy=timers.target
该计时器的源代码直接来自 Fedora 包装
要激活该计时器,systemctl enable --now certbot.timer
.从那时起,您的证书将在必要时自动更新。
您可能还想向 AWS 支持人员发送电子邮件,询问他们为什么建议使用其他每个较大的 Linux 发行版都包含的名为“certbot”的软件(以便您可以通过安装yum install certbot
并为您完成上述所有操作),但决定不将 certbot 包含在 Amazon Linux 2023 本身中。这似乎是一个非常愚蠢的疏忽。