Nginx SSL配置

花费了一些时间把博客的服务器加入ssl加密,第一件事情要做的就是申请一个免费的证书。自从苹果App Store要求所有APP访问网络请求均使用https方式后,网上出现了大量证书供应商的介绍,大家可以根据需求来选择。笔者的服务器放置于阿里云上,直接使用阿里云提供的免费一年的证书。

证书申请好之后,会得到两个文件,一个.pem文件和一个.key文件。将这两个文件配入到nginx中即可,方法如下:

复制秘钥到指定目录

这个目录不限制,不过为了好找,我将它放到了nginx安装目录下的cert目录中。

修改配置文件

由于nginx中配置了多个站点,所以我只需要修改对应站点的配置文件即可,只需要在*.conf文件中的server内追加如下内容即可

listen 443;
ssl on;
ssl_certificate /usr/local/nginx/cert/xxx.crt;
ssl_certificate_key /usr/local/nginx/cert/xxx.key;

重启nginx

使用service nginx restart可以,热更新配置也可以。

完成

现在通过https访问你的网站即可看到最终效果,不过对于网站中的内容,旧的链接都是http协议,我们还需要设置一下强制跳转。

nginx https强制跳转

加入一下配置

if ($server_port = 80) {
return 301 https://$server_name$request_uri;
}
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}

重启nginx即可,搞定

关于CSS 和 JS

由于这两样东西实在特殊,存在跨域问题,所以,在修改https后,你还在网站模板中将他们的链接手动改为https,否则浏览器将无法加载这些类型文件。

最后

最后,为了测试最终效果,上传一张附件图,内容为周末午后所做。