一招教你在Linux上安装SSL证书,并且自动续订
转载请复制本声明!
公众号:运维漫谈
编辑:漫谈君
在 Linux 上安装 SSL 证书
本文将带大家学习如何在运行 Nginx 的 Linux 服务器上安装有效的 SSL 证书,我们将选择 Lets Encrypt 为域获取证书,Lets Encrypt 是一个非盈利的证书颁发机构 (CA),免费颁发 SSL 证书。
前置知识
A 记录只是将域名映射到托管该域的设备的 IP 地址。
CNAME 代表规范名称,是另一个域的别名。
为了安装 SSL 证书,必须先在系统上安装 Web 服务器。
注意:本教程演示如何为 demo.linuxtrainingacademy.com 域安装 SSL 证书,您在使用的时候按照情况修改即可。
以根用户身份连接到服务器
使用su命令切换到 root 帐户:
su -
安装和配置 Nginx Web 服务器
安装 Nginx Web 服务器:
dnf install -y nginx
接下来,需要替换 /etc/nginx/nginx.conf 文件中的一行,用你最喜欢的编辑器打开它。
nano /etc/nginx/nginx.conf
注意:可以使用dnf install -y nano命令安装nano
找到这样一行:
server_name _;
将_更改为您的域名,确保在行尾的域之后包含分号 (;):
server_name demo.linuxtrainingacademy.com;
使用此命令检查任何语法错误或输入错误:
nginx -t
如果您收到诸如测试失败之类的消息,请在 /etc/nginx/nginx.conf 文件中修复您的编辑,然后重试。
确保 Web 服务器在启动时启动,然后执行启动命令,因此您可以使用以下命令来完成这两个步骤。
systemctlenable--now nginx
可以通过检查其状态来验证已启动的 Web 服务器。
systemctl status nginx
如果 Nginx 正常运行,会看到类似这样的东西:
您还可以使用systemctl的is-active选项来查看它是否正在运行。
systemctl is-active nginx
允许入站 HTTP 和 HTTPS 流量
如果使用的是本地 Linux 防火墙,请运行以下命令以允许 HTTP 和 HTTPS 流量:
firewall-cmd --permanent --zone=public --add-service=httpfirewall-cmd --permanent --zone=public --add-service=httpsfirewall-cmd --reload
测试网络服务器
打开网络浏览器并连接到您的域名,在此示例中,我使用的是 http://demo.linuxtrainingacademy.com,但使用您的域。
此时,您应该会看到一个测试页面。
安装 snapd
Snapd 在默认仓库中不可用,因此我们需要使用以下命令添加 EPEL 仓库:
dnf install -y epel-release
现在您可以安装snapd包:
dnf install -y snapd
接下来,启用管理主 snap 通信套接字的systemd单元:
systemctlenable--now snapd.socket
现在,启用经典快照支持:
ln -s /var/lib/snapd/snap /snap
安装 Certbot 应用程序
使用 snap 安装 certbot:
snap install --classic certbot
当运行 certbot 时,它会为 HTTPS 流量配置 nginx,告诉 nginx 为该流量使用新生成的证书,并设置证书的自动更新。
/snap/bin/certbot --nginx
注意:除非您注销并重新登录,否则 certbot 工具不会出现在您的 $PATH 中,这就是我们使用 /snap/bin/certbot 的绝对路径来运行它的原因。
在安装过程中,出现提示时输入您的电子邮件地址,此外,在出现提示时按y对问题回答是。
自动更新您的 SSL 证书
可以通过运行以下命令来测试 SSL 证书的自动续订功能:
/snap/bin/certbot renew --dry-run
如果自动续订有效,您将收到如下响应:恭喜,所有模拟续订都成功了。
验证 SSL 证书
打开 Web 浏览器并通过 HTTPS 连接到您的域。如果证书安装成功,将不会从 Web 浏览器收到有关 SSL 证书的任何错误或警告。
您还可以使用 curl 实用程序从命令行检查 Web 服务器:
curl https://demo.linuxtrainingacademy.com
如果证书有效,curl 将返回网站内容,没有任何错误或警告。
最后
到这里,您已经安装好一个有效的 SSL 证书了,该证书将自动更新!