expressjs如何配置自有證書(shū)https服務(wù)

自建證書(shū),Webpack-dev-server開(kāi)發(fā)模式下https直接調(diào)用會(huì)報(bào)錯(cuò)[Error: DEPTH_ZERO_SELF_SIGNED_CERT],需要設(shè)置一下代理配置

"proxy": {
    "/api": {
      "target": "https://localhost:8080/api/",//轉(zhuǎn)向的url
      "changeOrigin": true, //解決跨域問(wèn)題
      "secure": false, //接收無(wú)效證書(shū)的https服務(wù)
      logLevel: 'debug', //打印日志
      pathRewrite: {
        '^/api': ''
      }
    }
  }

安裝openssl

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

用openssl生成證書(shū)

openssl中有如下后綴名的文件

.key格式:私有的密鑰
.csr格式:證書(shū)簽名請(qǐng)求(證書(shū)請(qǐng)求文件),含有公鑰信息,certificate signing request的縮寫(xiě)
.crt格式:證書(shū)文件,certificate的縮寫(xiě)
.crl格式:證書(shū)吊銷列表,Certificate Revocation List的縮寫(xiě)
.pem格式:用于導(dǎo)出,導(dǎo)入證書(shū)時(shí)候的證書(shū)的格式,有證書(shū)開(kāi)頭,結(jié)尾的格式

步驟

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中使用證書(shū)

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}!`));

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容