哈哈,从今天开始,我的网站正式升级 https,从此不在被可恶的运营商注入广告了。这里主要记录一下繁琐的升级过程。

首先要感谢耗子哥的文章以及免费的 https 证书提供机构let’s Encrypt,当然还有很多其他文章的指导。

目前我关注的网站主要是两个,一个是放到自己服务器上的主站,另一个是托管到 github博客,由于博客是托管到 github 的,当时为了访问方便,做了 CNAME,绑定到了 newming.cn 上,而绑定方案是通过 dns 服务商处将 newming.cn 的记录直接指向了我的 github 博客的 ip,所以,如果要给博客升级 https 就不能在这么做了。

第一步: 反向代理 gh-pages

参考文章

第一步要做的就是将我的 dns 配置中以前指向 GitHub 的两条记录停掉,转而指向我的服务器。

第二布就是在我的服务器上去增加 newming.cn 这个域名的配置了,具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
server {
  listen 80;
  server_name newming.cn;

	location / {
		proxy_pass	https://newming.github.io;
		proxy_redirect     off;
		proxy_set_header   Host $host;
		proxy_set_header   X-Real-IP $remote_addr;
		proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
	}
}

配置完成之后直接 sudo nginx -s reload 重启即可

第二步: 部署 https

参考文章

这里直接按文章步骤执行即可,其中在执行 sudo certbot --nginx 有些需要可选项可以根据自己情况选择,比如是否强制跳转 https,这里我选择的是,当然你也可以在之后自行修改 nginx 配置文件。

第三步: 升级 nginx

因为开启 http2需要高版本的 nginx,所以就做了一个 nginx 升级,如果你的配置文件较为重要,请提前备份,这里我备份了 /etc/nginx/nginx.conf 文件,不过后来发现,再升级的时候 nginx 会自动给我备份出来一个 /etc/nginx/nginx.conf.dpkg-old 文件。升级中同样会有一些选择,其中有一个是否使用最新的配置文件,这里我选了是,之后一路平坦。

1
2
3
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx

至此,折腾完毕,整整一下午过去了。生命不止,折腾不止。