express设置https域名访问

设置域名访问

  1. 打开 /etc/nginx/conf.d/文件夹,如果文件夹不存在就创建一下。
  2. 在文件夹下创建一个conf结尾的配置文件,如:xxx.conf。
  3. 在文件中写入如下内容:
    server {
    listen 80;
    server_name api.xiangzi.site; # 此处填写你分配的二级域名
    location / {
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header Host  $http_host;
       proxy_set_header X-Nginx-Proxy true;
       proxy_set_header Connection "";
       proxy_pass       http://127.0.0.1:9007;  // 你本机的提供http服务的地址
    }
    }
    
    至此,重启服务,就发现可以使用域名访问了,但是还是http的,访问的时候会报不安全的链接。

设置https访问

  1. 申请,免费域名,以腾讯云为例。https://console.cloud.tencent.com/ssl
    Alt text
    Alt text
  2. 申请成功后点击下载证书。
    Alt text
    Alt text
  3. 在项目中配置证书访问代码。
    `
    const app = express();
    const options = {
    pfx: fs.readFileSync(path.join(__dirname, ‘api.xiangzi.site_iis’, ‘api.xiangzi.site.pfx’)),
    passphrase: ‘h97ai9m57x0097’
    };
    //options有两个选项,一个是证书本体,一个是密码(刚刚的IIS文件夹的keystorePass.txt文件中)
    let server = https.createServer(options, app);

// 设置监听端口
const SERVER_PORT = 9007;
server.listen(SERVER_PORT, (req, res) => {
console.info(服务已经启动,监听端口${SERVER_PORT})
})
`
至此,重启服务即可。