如何在Ubuntu 22.04上为Nginx创建自签名SSL证书

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

本文介绍了在Ubuntu 22.04上使用Certbot为Nginx创建自签名SSL证书的过程,包括安装Certbot、获取证书、配置应用程序以使用SSL,以及使用Certbot自动续订证书。这个过程为使用Let's Encrypt证书提供了坚实的基础。

🔎

延伸解读

自签名证书与Let's Encrypt证书的区分

文章标题提到“自签名SSL证书”,但内容实际介绍的是使用Certbot从Let's Encrypt获取证书。自签名证书由自己签发,而Let's Encrypt是受信任的证书颁发机构。读者需注意这一区别,避免混淆。本文方法适用于获取受信任的免费证书,而非自签名证书。

Standalone模式的使用限制

Certbot的--standalone模式要求80或443端口空闲,因为它会启动内置Web服务器完成挑战。如果这些端口已被Web服务器占用,文章建议使用webroot模式。因此,在生产环境中,若Nginx已在运行,直接使用standalone可能导致端口冲突,需提前规划。

自动续订与重载服务的配置

Let's Encrypt证书有效期为90天,Certbot通过cron任务每天检查两次,并在证书到期前30天自动续订。但续订后,Web服务器不会自动加载新证书。文章指导在续订配置中添加renew_hook,例如systemctl reload your_service,以确保服务使用新证书。务必替换your_service为实际服务名,并用--dry-run测试。

证书文件的作用与安全

Certbot将证书存储在/etc/letsencrypt/live/your_domain/目录下。其中privkey.pem是私钥,必须严格保密;fullchain.pem是证书链,通常用于服务器配置。了解这些文件有助于正确配置Nginx或其他服务。切勿泄露私钥,否则会危及SSL安全。

❓

Q&A

如何在Ubuntu 22.04上安装Certbot?

可以使用snap包安装Certbot,首先确保snapd已安装并更新,然后运行命令:sudo snap install --classic certbot。

使用Certbot获取SSL证书的步骤是什么?

运行命令:sudo certbot certonly --standalone -d your_domain,并接受服务条款以获取SSL证书。

如何配置Nginx以使用SSL证书?

需要查看证书和密钥的存储位置,通常在/etc/letsencrypt/live/your_domain目录下,配置Nginx使用privkey.pem和fullchain.pem文件。

Let’s Encrypt证书的有效期是多久?

Let’s Encrypt证书的有效期为90天,建议自动续订。

如何自动续订Let’s Encrypt证书?

Certbot会在/etc/cron.d中添加续订脚本,建议使用renew_hook来自动重载服务。

在Ubuntu 22.04上使用Certbot时需要注意哪些前提条件?

需要有一个配置了sudo权限的非root用户,指向服务器的域名,以及开放的80和443端口。

🏷️

标签

➡️

继续阅读