在NodeJS(TLS)中捕获过期的自签名证书错误

时间:2018-08-26 12:20:06

标签: node.js ssl ssl-certificate tls1.2

我具有用于CA,服务器和客户端的自签名证书。

在服务器上:

const options = {
  key: fs.readFileSync('./openssl/server_key.pem'),
  cert: fs.readFileSync('./openssl/server_cert.pem'),
  ca: fs.readFileSync('./openssl/ca_cert.pem'),
  requestCert: true,
  rejectUnauthorized: true,
}

const server = https.createServer(options, requestHandler)

在客户端上:

const socket = tls.connect({
    host: PROXY_HOST,
    port: PROXY_PORT,
    key: fs.readFileSync('./openssl/client_key.pem'),
    cert: fs.readFileSync('./openssl/client_cert.pem'),
    ca: fs.readFileSync('./openssl/ca_cert.pem'),
  })
socket.on('error', err => console.error(err.message));

我会生成有效期为一定天数(例如)的证书:

openssl req -new -x509 -days 10 -config ./openssl/ca.cnf -key ./dist/ca_key.pem -out ./dist/ca_cert.pem

到期后,NodeJS拒绝工作。问题是我在控制台中看不到任何错误。 NodeJS只是默默地拒绝工作(处理请求)。

如何捕获到期证书错误? (看起来这个错误是低级别的)

当我在到期日之后重新启动(客户端和服务器)NodeJS时,NodeJS仍然没有通知我,证书已过期。在这种情况下如何显示错误?

0 个答案:

没有答案