vue nodejs ssr 环境下,如何配置https协议?

原来项目是http协议的,使用了vue+node的ssr配置,现在项目要为小程序提供接口,那么,就需要将http协议换为https协议,可是并没有如何排至现在情况下的https协议的方法,请问,该如何配置呢?
同时,有没有一种配置方法,能将原来http协议访问的地址,直接重定向到https的地址呢?

ps:原有项目使用ssr框架为vue-server-renderer,项目也没有前后端分离,也没有使用任何服务器。这种情况下应该如何配置。

阅读 2.8k
1 个回答

写一写我的做法(貌似一般都是做么干的)
用 nginx 做前置机,负责做转发。假设你的 node 服务是跑在 3000 端口,具体的 vhost 文件配置如下:

# https 配置
server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
    root html;
    index index.html index.htm;
    ssl_certificate cert/cert-file-name.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/cert-file-name.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #表示使用的加密套件的类型。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://127.0.0.1:3000;
    }
}

# http 配置
server {
    listen 80;
    server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
    rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    location / {
        proxy_pass http://127.0.0.1:3000;
    }
}

希望能对你有帮助 :)

已参与了 SegmengtFault 思否 「问答」打卡,欢迎正在阅读的你也加入。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题