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的扩展阅读: