网站添加HTTPS支持
昨晚又吃饱了撑的,又买了个 SSL 证书,给博客配置上了 HTTPS。
对于博客而言,上 HTTPS 其实并没有什么卵用,纯粹是为了信仰。
准备
PositiveSSL
首先你得买个证书。
namecheap 上 PositiveSSL 证书一年只要 9 美元,人民币不到 60。先别急着激活。
域名邮箱
namecheap 的 SSL 证书需要使用你的域名邮箱进行认证。比如域名是example.com
,你就需要有一个[email protected]
的邮箱。
这里可以去申请免费的 QQ 企业邮箱。按照里面说的,去你的域名托管商那里修改 MX 记录。比较例外的是,我的 .io 域名,不被 QQ 企业邮箱支持。所以我换了网易企业邮箱。网易的比较坑,MX 记录过了好几个小时才生效。
服务器
接下来在你的服务器端生成你的 key。
openssl req -new -newkey rsa:2048 -nodes -keyout example_com.key -out example_com.csr
上面的名字自己看喜好替换。
这时你会有两个文件:example_com.key
是你的私钥,一会配置 Nginx 要用;example_com.csr
是给 namecheap 的。
激活
复制example_com.csr
里面的内容,到 namecheap 的网站上,到你的管理后台,点击 activate。
写域名的话就是你想保护的域名。然后把刚才的 csr 内容贴到框里。服务器类型选 nginx。
下一步之后选择你刚才开通的[email protected]
邮箱。
然后就等着收激活邮件,点击激活链接,把邮件里的 token 提交上去。然后这个证书就激活了。
激活之后,namecheap 会给你域名的管理邮箱,有可能是你自己的邮箱,也有可能是刚才的 admin 的邮箱,看你的选择,发送一封邮件,附件是一个证书 .zip 文件。
配置
把上面的 .zip 文件弄到你的服务器上。unzip 解压之后,把这些文件聚合到一个文件里。
cat www_example_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ssl-bundle.crt
这儿顺序不能错。相应文件的名字自己替换一下。
接下来我们配置 Nginx。
先把证书什么的丢进去。
1 | mkdir -p /etc/nginx/ssl/example_com/ |
修改博客的 nginx 配置,如下:
1 | server { |
然后重新加载配置sudo nginx -s reload
。
注意你的 443 端口开没开啊。
后续
然后你的网站应该就有了 HTTPS。
注意检查一下是否引用了一些 http 的资源。