我具有用于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仍然没有通知我,证书已过期。在这种情况下如何显示错误?