今天抽空将 blog 增加了 HTTPS 支持,并停止了原来的 HTTP 服务。
由于证书仅网站域名需要,因此使用了免费的 Let’s Encrypt 证书服务。设置的主要步骤如下,假设你已经有一个正常运行的 HTTP 网站。
打开 https://certbot.eff.org/ 选择对应操作系统与 Web 服务器,选完后出现响应的平台说明。由于我的系统运行在 nginx 及 Ubuntu,选完之后出现的说明地址是 https://certbot.eff.org/#ubuntuxenial-nginx
执行命令,并根据需要修改相应域名参数。
$ sudo apt-get install letsencrypt
$ letsencrypt certonly --webroot -w /var/www/timyang.net -d timyang.net -d www.timyang.net
- 修改 nginx
将 80 端口相关配置改成 443 端口,并增加相关配置
# listen 80;
listen 443 ssl;
server_name timyang.net www.timyang.net;
ssl_certificate /etc/letsencrypt/live/timyang.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/timyang.net/privkey.pem;
再增加 80 端口自动跳转
server {
listen 80;
server_name timyang.net www.timyang.net;
return 301 https://$host$request_uri;
}
- 重启 nginx,并用 chrome 访问,如果 URL 地址之前出现锁标记,则说明设置成功。
如果页面中还包含有嵌入的 HTTP 元素,chrome 会仍然显示 i 标记,通过点击 i 之后的元素说明逐个修复即可。