通过Certbot网站Https化

1. 说明

1.1. 关于操作系统及参数

VPS的系统是Debian9

webserver为Nginx

2. 给域名注册证书

2.1. 安装certbot

1
$ sudo apt-get install certbot python-certbot-nginx

2.2. 注册证书

1
2
3
$ sudo certbot --nginx -d 你的域名 -m 你的邮箱
# 多个域名用逗号(,)隔开 邮箱可填可不填用来接收通知
# 注册完成后根据提示便可知道生成文件位置

--nginx选项会自动修改nginx.conf里ssl_certificatessl_certificate_key的路径,并在其后注释managed by Certbot便于区分。

3. 配置Nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 只贴出了server内的代码,其中80端口强转443端口,即全网站https化
# 注意将下面的your.domain.name替换为自己的域名
# 至于server中省略的location按自己的实际情况来写
server {
listen 80;
server_name your.domain.name;
return 301 https://$server_name$request_uri;
}

server {
listen 443 ssl;
ssl on;
server_name your.domain.name;
access_log /var/log/nginx/blog_access.log;
error_log /var/log/nginx/blog_error.log;
error_page 404 = /404.html;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_certificate /etc/letsencrypt/live/your.domain.name/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your.domain.name/privkey.pem;
}

注:如果你同时把ip解析到了自己的裸域名和用www表示的主机名,那么建议你使用301重定向,这样对于你的搜索引擎优化有好处,具体你可以看这篇文章了解更多。