Nginx 部署的虚拟主机如何使用 Let's Encrypt 来进行加密 https

HTTPS 是现在网站的标配了,很多服务都是必须使用 https,如果你不使用的话,浏览器可能就不会对你非常友好了。

如果你不想使用商业的 CA 秘钥的话,你可以使用 Let’s Encrypt 来进行加密。

使用 Let’s Encrypt 唯一不好的地方就是每 3 个月要更新一次,当然你也可以使用自动的更新来处理就好了。

我们需要通过安装插件来实现:

  • 获得 SSL 加密需要的 pem 秘钥。
  • 设置 certbot 能自动更新秘钥。

需要前提条件

已经安装好了 Nginx并且配置好了虚拟主机
安装好 python3-certbot-nginx 插件

对 Nginx 虚拟主机的配置方法我们就不详细说了,你可以自己搜索下进行配置。

安装 python3-certbot-nginx 插件

安装的命令非常简单:

执行下面的命令就可以了:sudo dnf install python3-certbot-nginx 需要注意的是,我们这个命令是带有 nginx 插件的。

还有一个官方的是不带有插件的,不建议装那个,因为非常不好配。

获得 pem 秘钥

运行下面的命令 sudo certbot certonly --nginx,需要后面添加 nginx 参数才可以了。

通过下面的输出我们可以看到,这个工具将会检测到你的本地服务器上有几个虚拟主机。

然后你需要选择你需要的一个来进行安装。

在安装成功后,会生成我们需要的 pem 秘钥。

23d320ae3d7eda62dd2c56a846d8e658e1db0a4c

配置你的虚拟主机

找打你的虚拟主机文件,然后将生成的秘钥配置上去就可以了。

例如我们的虚拟主机配置:

c7b35446784a538d0958edde4733be22ea39afb7

我们首先在上面配置了 80 端口的重定向,然后将生成的 2 个秘钥文件的指定位置配置上去就行了。

然后重启 Nginx 服务器,然后检查你的网站的 HTTPS 情况。

检查网站 HTTPS 情况

可以使用一些第三方的网站来进行检查,也可以直接使用浏览器来检查。

7aaea4481e8b8ff8e690cb7829bf74edaf5adfe2

主要看看网站有没有正常的重定向,和 SSL 证书的过期时间。

上面的证书看起来签发的是泛域名。