Node.js开启Https的小实践
最近自己的 https://www.jackzoo.org/ 切换到了 https
。其实去年想把博客给迁移过去,但是太穷找了个免费的证书(可以去这里弄Let's Encrypt),实际效果不是很好。 (可以访问 https://www.jackpu.com )但是最近腾讯云推出了免费的ssl证书申请。楼主是亲测有效的。(我没有打广告)
申请成功后,你直接下载证书就可以用了。
配置nginx
在/etc/nginx/conf.d/
下加入你的域名配置比如xxx.com.conf,内容如下
server {
listen 80;
listen 443 ssl;
server_name www.xxx.com;
ssl_certificate /etc/nginx/ssl/www.xxx.com_cert.crt;
ssl_certificate_key /etc/nginx/ssl/www.xxx.com.key;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8360;
}
}
proxy_pass 即反向代理到你的node服务的地址。
ssl_certificate 和 ssl_certificate_key 需要指定证书目录文件,也就是将你下载的文件复制到/etc/nginx/ssl 目录中去就行啦。
最后重启nginx就可以咯。非常简单啦。
Note 切换到https麻烦的事情就来了,https不允许http资源的加载请求,因此最好将那些地址替换掉支持https。
关于https的扩展阅读: