Please enable Javascript to view the contents

手把手 Let's encrypt 免费 SSL 证书安装教程

 ·  ☕ 3 分钟

我在阿里云上部署了个人网站,码中人的档案夹。网站是用的 Nginx 作为 Web 服务器,用的是阿里云提供的免费证书,最近发现证书过期好长时间了,需要重新申请证书。

现在浏览器对网站安全性要求越来越高,很多浏览器都会标记 HTTP 网站为不安全,所以我决定给网站添加 SSL 证书。SSL 证书可以保护网站数据传输安全,防止数据被窃取。

记得以前阿里云、腾讯云的免费证书是 1 年有效期,现在好像改成了 3 个月,而且需要实名认证。我不想再花钱买证书,所以决定使用免费的 SSL 证书。目前比较流行的免费 SSL 证书有 Let’s encrypt 和 Cloudflare。这次先尝试一下 Let’s encrypt。

同样,Let’s encrypt 证书也是 3 个月有效期,不过有脚本可以自动续期,不需要手动操作。而阿里云、腾讯云的免费证书需要手动续期,申请、签发、下载、上传到服务器,一系列动作还是有点烦人。所以我就选择了 Let’s encrypt。

视频教程

【免费】手把手 Let’s Encrypt 免费 SSL 证书安装教程 | 免费证书 | 域名 哔哩哔哩

Let’s encrypt

Let’s Encrypt 是一家免费、开放、自动化的证书颁发机构,由非营利组织互联网安全研究组(ISRG)运作。Let’s encrypt 证书是 3 个月有效期,可以通过脚本自动续期。Let’s encrypt 证书是 DV(Domain Validation)证书,只验证域名所有权,不验证公司信息。

安装 Certbot

Certbot 是 Let’s encrypt 官方推荐的 ACME 协议客户端,用于自动化地从Let’s Encrypt 获取、安装和管理这些证书。Certbot 支持 Nginx、Apache、HAProxy、Caddy 等 Web 服务器。

Certbot 安装方法有多种,可以参考 Certbot 官方文档。这里我用 Yum 安装 Certbot

1
yum install certbot -y

测试一下 Certbot 是否安装成功。

1
certbot --version

申请证书

Certbot 申请证书的命令如下:

1
certbot certonly --nginx -d example.com -d www.example.com

--standalone 表示使用独立模式,不需要 Nginx 服务。--nginx 表示使用 Nginx 插件,-d 后面是域名,可以添加多个 -d 参数,支持多域名证书。申请证书之前,需要确保 Nginx 服务正常运行。

安装证书

Certbot 申请证书成功后,会提示证书存放路径,一般是 /etc/letsencrypt/live/example.com/ 目录。证书包括 fullchain.pemprivkey.pem 两个文件,分别是证书链和私钥。

1
2
/etc/letsencrypt/live/example.com/fullchain.pem
/etc/letsencrypt/live/example.com/privkey.pem

将证书链和私钥配置到 Nginx 服务器。

1
2
3
4
5
6
7
server {
    listen 443 ssl;
    server_name example.com www.example.com;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ...
}

重启 Nginx 服务。

1
systemctl restart nginx

证书续期

Let’s encrypt 证书是 3 个月有效期,可以通过 Certbot 自动续期。

1
certbot renew

Certbot 会检查证书是否过期,如果过期会自动续期。可以将 certbot renew 添加到定时任务,定期检查证书是否过期。

参考资料

分享

码中人
作者
码中人
Web Developer