如何在 Nginx 中安装 Let's Encrypt 并自动化续订





5.00/5 (4投票s)
你想保护你的 nginx 服务器吗? 你想防止 Google Chrome 浏览器对你的非 SSL 域名进行警告吗? 这是一个完美的,而且容易遵循的指南来帮助你。
没有介绍,让我们开始吧
我认为你们不需要任何关于 SSL 证书、NGINX 和 Linux 操作系统的介绍。 所以为什么要把时间浪费在对它们的含义和工作方式的半解释上呢。
但在你开始按照步骤操作之前,有一些先决条件
- 你的服务器必须安装 ubuntu 16.04 LTS。 14.04 也能完美工作。
- 你必须已经注册了一个域名,并且它应该指向你的服务器的域名服务器。
- 你的 www.domain 和 non-www.domain(我的意思只是域名)都应该正确地指向你的服务器,这是必要的。
- 你必须已经安装并运行了 NGINX。 在进行任何修改之前,最好先检查 NGINX 的状态。 为此,你可以使用
nginx -t or service nginx configtest
我将要遵循的过程 - 简单,只需复制和粘贴
- 我将向你展示如何安装 Certbot
- 配置 Nginx 服务器块。 建议为每个新域名创建新的服务器块文件
- 在服务器上安装 Letsencrypt SSL
- 自动化 SSL 证书续订过程
如果你使用像 WordPress 这样的 CMS,那么你可以使用 EasyEngine 自动安装 NGINX,并带有 Fast-CGI Cache,InnoDB,PHP 7.2,zendopcache 和 Letsencrypt。
使用 easyengine,安装 SSL 就像输入一个命令,这是一个例子
sudo ee site update yourdomainname.com --letsencrypt
如果你有兴趣,你可以阅读这篇关于 如何在 digitalocean 上轻松安装 wordpress 的指南。
在你开始按照以下步骤操作之前,你必须首先登录到你的服务器。 然后使用 root 权限。 使用 sudo
su 命令。
步骤 1:安装 Certbot
现在你已经以 root 权限连接到你的服务器了!
将此命令复制并粘贴到你的终端
add-apt-repository ppa:certbot/certbot
sudo apt-get update
现在,你必须安装 certbot nginx 配置文件包。 为此,我们将使用以下命令
apt-get install python-certbot-ngin
步骤 2:配置 Nginx
为了使 certbot 正常且自动工作,你需要正确定义服务器块。
为此,你需要编辑默认的服务器块。 我将使用 nano 来编辑默认配置,因为它很容易,而且是我最喜欢的。 复制并粘贴以下命令。 此命令只有在你有一个新服务器时才有效。
nano /etc/nginx/sites-available/default
现在使用 Ctrl+w 查找 server_name
。
然后,添加你的网站域名。 完整的句子应该如下所示
server_name your-domain-name.com www.your-domain-name.com;
现在按 ctrl+x,然后按 enter 保存你的新配置。
要测试 nginx 是否没有问题,请使用 nginx -t
命令。 如果一切似乎都正确,只需使用 systemctl reload nginx
命令重新加载 nginx。
步骤 3:安装 LetsEncrypt SSL
如果你正确地按照了以上所有步骤,你应该只需一个命令即可在你的服务器上安装 SSL 证书。
certbot --nginx -d your-domain-name.com -d www.your-domain-name.com
现在按 2 以自动将非 https 请求重定向到 https 页面。 在安装过程中,系统会要求你提供姓名和电子邮件地址。 提供正确的信息。
恭喜你,现在你的 NGINX 服务器(域名)已经有 SSL 了。
步骤 4:检查自动续订过程
这是最后一步,实际上,它不是必需的,但最好总是测试一下。
我们将使用 certbot renew --dry-run
来检查自动续订过程是否正常工作。
希望不会有任何错误,并且 certbot 会自动重新加载你的 nginx 以加载新的配置。