expressjs如何配置自有证书https服务

自建证书,Webpack-dev-server开发模式下https直接调用会报错[Error: DEPTH_ZERO_SELF_SIGNED_CERT],需要设置一下代理配置

"proxy": {
    "/api": {
      "target": "https://localhost:8080/api/",//转向的url
      "changeOrigin": true, //解决跨域问题
      "secure": false, //接收无效证书的https服务
      logLevel: 'debug', //打印日志
      pathRewrite: {
        '^/api': ''
      }
    }
  }

安装openssl

windows需要git-bash,或者安装oepnssl,https://slproweb.com/products/Win32OpenSSL.html

用openssl生成证书

openssl中有如下后缀名的文件

.key格式:私有的密钥
.csr格式:证书签名请求(证书请求文件),含有公钥信息,certificate signing request的缩写
.crt格式:证书文件,certificate的缩写
.crl格式:证书吊销列表,Certificate Revocation List的缩写
.pem格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式

步骤

openssl genrsa 1024 > /pathway/private.pem
openssl req -new -key /pathway/private.pem -out csr.pem
openssl x509 -req -days 365 -in csr.pem -signkey /pathway/private.pem -out /pathway/file.crt

express中使用证书

const express = require('express');
var fs = require('fs');
var https = require('https');

https.createServer({
  key: fs.readFileSync('./certificate/private.pem'),
  cert: fs.readFileSync('./certificate/file.crt'),
  // requestCert: false,
  // rejectUnauthorized: false,
}, app).listen(process.env.PORT || 8080, () => console.log(`Listening on port ${process.env.PORT || 8080}!`));

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容