原文作者: Amir Rawdat of F5
原文链接: 为 NGINX 配置免费的 Let’s Encrypt SSL/TLS 证书
转载来源:NGINX 官方网站
NGINX唯一中文官方社区 ,尽在 nginx.org.cn
众所周知,网站的 SSL/TLS 加密会为您的用户带来更靠前的搜索排名和更出色的安全性。但目前有许多障碍阻碍了网站所有者采用 SSL。
其中两个最大障碍是证书获取成本高昂和所涉人工流程繁琐。而现在,有了 Let’s Encrypt,这些都不再是问题。Let’s Encrypt 支持所有人免费使用 SSL/TLS 加密。
Let’s Encrypt 是一家免费、开放、自动化的证书颁发机构 (CA)。是的,没错Let’s Encrypt颁发的 SSL/TLS 证书是免费的。现今的大多数浏览器都信任 Let’s Encrypt 颁发的证书,包括旧版浏览器,例如 Windows XP SP3 上的 Internet Explorer。此外,Let’s Encrypt 实现了证书颁发和更新的全自动化。
NGINX 对于成为 Let’s Encrypt 的赞助者之一感到非常骄傲,阅读 《支持开源,打造更安全的世界:F5 NGINX 宣布赞助 Let’s Encrypt 和 OpenSSL》一文了解更多。
本文介绍了如何使用 Let’s Encrypt 客户端生成证书,以及如何自动配置 NGINX 开源版和 NGINX Plus 以使用这些证书。
在颁发证书之前,Let’s Encrypt 会验证域名的所有权。在您的主机上运行的 Let’s Encrypt 客户端将创建一个临时文件(一个令牌),其中包含所需的信息。然后,Let’s Encrypt 验证服务器会发出 HTTP 请求以检索文件并验证令牌,从而验证您域名的 DNS 记录是否解析到运行 Let’s Encrypt 客户端的服务器。
在开始使用 Let’s Encrypt 之前,您需要:
现在您可以用NGINX 开源版或 NGINX Plus轻松设置 Let’s Encrypt (为了便于阅读,下文将统称为 NGINX)。
注:我们在 Ubuntu 16.04 (Xenial) 上测试了本文所述的程序。
首先,下载 Let’s Encrypt 客户端 certbot
。
如上所述,我们在 Ubuntu 16.04 上测试了相关指令,以下是在该平台上运行的相应命令:
$ apt-get update
$ sudo apt-get install certbot
$ apt-get install python-certbot-nginx
用 Ubuntu 18.04和更高版本, 替代 Python 3版本:
$ apt-get update
$ sudo apt-get install certbot
$ apt-get install python3-certbot-nginx
certbot
可以自动完成 NGINX 的 SSL/TLS 配置。它会在您的 NGINX 配置中查找并修改包含 server_name
指令(含有您为其请求证书的域名)的 server
块。在我们的示例中,域名为 http://www.example.com.
1. 假设您在一个全新的 NGINX 安装上进行设置,请使用文本编辑器在 /etc/nginx/conf.d 目录中创建一个名为 domain‑name.conf 的文件(在我们的示例中为 www.example.com.conf)。
2. 使用 server_name
指令指定您的域名(如果域名有变体的话也请指定):
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
server_name example.com www.example.com;
}
3. 保存文件,然后运行以下命令来验证配置的语法并重新启动 NGINX:
$ nginx -t && nginx -s reload
certbot
的 NGINX 插件负责重新配置 NGINX,并在必要时重新加载其配置。
1. 运行以下命令,使用 NGINX 插件生成证书:
$ sudo certbot --nginx -d example.com -d www.example.com
2. 根据 certbot
的提示配置 HTTPS 设置,包括输入您的电子邮件地址并同意 Let’s Encrypt 服务条款。
如欲了解本文后续内容,请点击《为 NGINX 配置免费的 Let’s Encrypt SSL/TLS 》证书查看后续内容。
NGINX唯一中文官方社区 ,尽在 nginx.org.cn
更多 NGINX 相关的技术干货、互动问答、系列课程、活动资源: