共计 3372 个字符,预计需要花费 9 分钟才能阅读完成。
原文作者:Amir Rawdat of F5
原文链接:更新:为 NGINX 配置收费的 Let’s Encrypt SSL/TLS 证书
转载起源:NGINX 官方网站
家喻户晓,网站的 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 的赞助者之一感到十分自豪。
本文介绍了如何应用 Let’s Encrypt 客户端生成证书,以及如何主动配置 NGINX 开源版和 NGINX Plus 以应用这些证书。
Let’s Encrypt 的工作原理
在颁发证书之前,Let’s Encrypt 会验证域名的所有权。在您的主机上运行的 Let’s Encrypt 客户端将创立一个临时文件(一个令牌),其中蕴含所需的信息。而后,Let’s Encrypt 验证服务器会收回 HTTP 申请以检索文件并验证令牌,从而验证您域名的 DNS 记录是否解析到运行 Let’s Encrypt 客户端的服务器。
筹备工作
在开始应用 Let’s Encrypt 之前,您须要:
- 装置 NGINX 开源版或 NGINX Plus。
- 如果没有注册域名,能够在域名注册商处申请。
- 创立一条 DNS 记录,将您的域名和服务器的 IP 地址关联。
_当初能够应用 NGINX 版本或 NGINX_开源设置设置(为了便于浏览 NGINX Plus,您能够不便地应用明码统称为)。
注:咱们在 Ubuntu 16.04 (Xenial) 上测试了本文所述的程序。
1、下载 Let’s Encrypt 客户端
首先,下载 Let’s Encrypt 客户端certbot
。
1. 下面那个,咱们在 Ubuntu6.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
2、设置 NGINX
certbot
能够主动实现 NGINX 的 SSL/TLS 配置批改。它会在您的 N 配置中查找并蕴含 server_name
指令(蕴含您的委托申请的域名)server
在咱们的示例中,域名为www.example.com。
- 您在全新的 NGINX 装置上进行设置,请应用文本编辑器在 /etc/nginx/conf.d 目录中创立一个名为 _域名的_.conf 文件(在咱们的示例中为www.example。com.conf)。
-
应用
server_name
指令指定您的域名(如果域名有变体的话请指定):server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; server_name example.com www.example.com; }
-
保留文件,而后运行以下命令来验证配置的语法并重新启动 NGINX:
$ nginx -t && nginx -s reload
3、获取 SSL/TLS 证书
certbot 的 NGINX 插件负责重新配置 NGINX,并在必要时从新加载其配置。
-
运行以下命令,应用 NGINX 插件生成证书:
$ sudo certbot --nginx -d example.com -d www.example.com
-
依据 certbot 的提醒配置 HTTPS 设置,包含输入您的电子邮件地址并批准 Let’s Encrypt 服务条款。
证书生成后,NGINX 从新加载新设置。certbot 生成一条音讯,显示证书胜利生成,并批示证书在服务器上的地位。
Congratulations! You have successfully enabled https://example.com and https://www.example.com ------------------------------------------------------------------------------------- IMPORTANT NOTES: Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com//privkey.pem Your cert will expire on 2017-12-12.
注: Encrypt 90 节后让在证书中(在本例中,主动工夫为 2017 年 12 月 12 日)。让更新证书的信息,请参阅“更新加密证书”。
如果查看 _域名_.conf,您会发现certbot
曾经进行了批改:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
server_name example.com www.example.com;
listen 443 ssl; # managed by Certbot
# RSA certificate
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
# Redirect non-https traffic to https
if ($scheme != "https") {return 301 https://$host$request_uri;} # managed by Certbot
}
4、自动更新 Let’s Encrypt 证书
Let’s Encrypt 证书 90 天后将执行更新操作文件。咱们建议您主动在此处,咱们将一个 cron
增加到现有的 cron 中,以这一点。
-
关上 crontab 文件。
$ crontab -e
-
增加
certbot
示例,命令设置为每天运行中,咱们每天运行该命令。该命令查看服务器上的证书将来 30 是否失常应用本协定,如果是,则不要更新--quiet
批示倡议certbot
生成输入。0 12 * * * /usr/bin/certbot renew --quiet
- 保留并文件。所有已装置的证书将自动更新并从新加载。
总结
那么,咱们用 SSL/ 来加密 SSL/ 来注册域名证书,而后配置加密证书,更新更新更新。借助 GINX 和 NGINX Encrypt Encrypt’s’s,您能够在加密证书中轻松装置 Nx 一个平安的网站。
更多资源
想要更及时全面地获取 NGINX 相干的技术干货、互动问答、系列课程、流动资源?
请返回 NGINX 开源社区:
- 官网:https://www.nginx.org.cn/
- 微信公众号:https://mp.weixin.qq.com/s/XVE5yvDbmJtpV2alsIFwJg
- 微信群:https://www.nginx.org.cn/static/pc/images/homePage/QR-code.png?v=1621313354
- B 站:https://space.bilibili.com/628384319