个人博客改进
加装“小绿锁” (强烈推荐)
服务器的默认配置只会开启 80 端口(也就是普通的 HTTP 协议)。因为我们还没有去申请过 SSL 安全证书,也没有给 Nginx 配置用于加密传输的 443 端口,所以网站目前自然只能以 http:// 的形式访问。
现在的浏览器非常严格,只要发现网站没有部署 SSL 证书,就会在地址栏左侧自动标记为“不安全”。
目前业界最主流、最良心的免费 SSL 证书颁发机构叫 Let’s Encrypt。为了方便部署,他们官方出了一个自动化机器人叫 Certbot。有了它,你不需要手动去配置复杂的加密文件,机器人会帮你全自动搞定一切!
为什么它能做到完全免费?
传统的 SSL 证书(比如赛门铁克、GeoTrust)一年动辄几百上千块,而 Let’s Encrypt 之所以能免费,主要有两个原因:
大厂在背后“买单”: Let’s Encrypt 背后是一个名为 ISRG(互联网安全研究小组)的非营利组织。它的金主爸爸是 Google、Mozilla(火狐)、Cisco、Meta、AWS 等一众全球顶尖科技巨头。这些大厂为了推动全球互联网进入全 HTTPS 时代(防窃听、防劫持),主动捐钱给它维持服务器运转。
彻底的自动化(零人工成本): 传统证书收费贵,是因为有“人工审核”环节。而 Let’s Encrypt 发明了咱们刚才用的 Certbot 机器人,验证域名、签发证书、部署配置全部由代码全自动秒批,边际成本几乎为零。
安装Certbot
1 | sudo apt update |
申请并绑定小绿锁
1 | sudo certbot --nginx -d skycity.xin -d www.skycity.xin |
运行后,机器人会和你进行几轮简单的英文对话,请照着下面的“作弊条”回答:
Enter email address (used for urgent renewal and security notices):
- 输入你的常用邮箱(比如 QQ 邮箱等)并回车。
Please read the Terms of Service… (A)gree/(C)ancel:
- 输入
A或Y并回车(同意服务条款)。
- 输入
Would you be willing to share your email address with the Electronic Frontier Foundation… (Y)es/(N)o:
- 果断输入
N并回车(拒绝接收他们的推广邮件)。
- 果断输入
(如果系统问你是否要将 HTTP 重定向到 HTTPS) Please choose whether or not to redirect HTTP traffic to HTTPS… 1: No redirect / 2: Redirect:
- 强烈建议输入
2并回车(这会让所有访客强制跳到安全的 HTTPS 页面,非常关键)。 - 我这里没有出现这一步,现在默认就会自动帮你配置好“强制把 HTTP 跳转到 HTTPS”的安全规则,所以直接跳过了第四步的提问
- 强烈建议输入
只要看到屏幕最后跳出 “Congratulations!” 或者 “Successfully deployed certificate” 的字眼,就说明大功告成了!
“Congratulations! You have successfully enabled HTTPS on https://skycity.xin and https://www.skycity.xin“

原来:
现在: