如何在Amazon Linux 2上使用certbot/letsencrypt和nginx启用HTTPS

5

在Amazon Linux 2上安装certbot/letsencrypt,并在nginx上启用HTTPS(类似的过程适用于apache)

3个回答

25

安装Certbot

sudo yum update
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum-config-manager --enable epel
sudo yum install certbot python3-certbot-nginx
certbot --version

生成证书

使用以下命令来生成证书,并自动让Certbot修改Nginx配置以启用HTTPS:

sudo certbot --nginx

或者,如果你只需要证书,使用以下命令:

sudo certbot certonly --nginx

证书将创建在文件夹

/etc/letsencrypt/live/你的网站名称/

例如:

证书

/etc/letsencrypt/live/www.my-site.com/cert.pem

私钥

/etc/letsencrypt/live/www.my-site.com/privkey.pem


启用自动续订

使用以下命令启用证书的自动续订:

sudo certbot renew --dry-run

我遇到的错误

如果在创建证书时出现以下错误:

"无法选择适当的插件:请求的nginx插件似乎未安装"

那么运行以下命令:

sudo yum install certbot python-certbot-nginx

并重试创建证书。

注意事项

对于Apache,您可以使用python2-certbot-apache代替python2-certbot-nginx, 在创建证书时,请确保使用选项--apache而不是--nginx

DNS必须配置为指向您的机器,否则Certbot的检查会失败。


谢谢,这非常有帮助。我找不到 python3-certbot-nginx,只有 python2-certbot-nginx。我认为需要在上面的第一个代码块中进行更改。提供一些安装自动更新的说明将会很棒。 - Alex Voss
5
这在Amazon Linux 2023上无法工作。当尝试安装epel时,我遇到了一个错误:错误: 问题:冲突的请求
  • epel-release-7-14.noarch需要redhat-release >= 7,但没有提供
- Matt Hovey
@MattHovey 如果你感到孤独,我目前正在处理完全相同的问题。 - Owen Easter
1
@MattHovey 这个指南只适用于Amazon Linux 2,如果你正在使用Amazon Linux 2023,请参考这个讨论在aws上。 简而言之,你可以按照官方的certbot pip指示这里,刚测试过,看起来工作正常。 - Majico

6
2023年7月,Amazon Linux 2不支持epel仓库。但是,如果您能够通过ssh登录到机器上,您可以使用python软件包。
sudo pip3 install certbot certbot-nginx

# then execute
sudo /usr/local/bin/certbot --nginx -d ilovetoast.com www.ilovetoast.com

参考资料:

0
您可以按照这篇详细的Medium文章中所述的步骤,使用Let's Encrypt SSL证书来保护AWS EC2实例。文章的链接是:如何使用Let's Encrypt SSL证书保护AWS EC2实例
简而言之,该文章提供了一个详细的指南,教您如何在AWS EC2实例上设置SSL证书,确保您的Web应用程序的安全性。
请参考该文章以获取逐步说明和有关此主题的其他见解。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接