我在阿里云上部署了个人网站,码中人的档案夹。网站是用的 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
。
|
|
测试一下 Certbot
是否安装成功。
|
|
申请证书
Certbot
申请证书的命令如下:
|
|
--standalone
表示使用独立模式,不需要 Nginx 服务。--nginx
表示使用 Nginx 插件,-d
后面是域名,可以添加多个 -d
参数,支持多域名证书。申请证书之前,需要确保 Nginx 服务正常运行。
安装证书
Certbot
申请证书成功后,会提示证书存放路径,一般是 /etc/letsencrypt/live/example.com/
目录。证书包括 fullchain.pem
和 privkey.pem
两个文件,分别是证书链和私钥。
|
|
将证书链和私钥配置到 Nginx 服务器。
|
|
重启 Nginx 服务。
|
|
证书续期
Let’s encrypt 证书是 3 个月有效期,可以通过 Certbot
自动续期。
|
|
Certbot
会检查证书是否过期,如果过期会自动续期。可以将 certbot renew
添加到定时任务,定期检查证书是否过期。