📅  最后修改于: 2023-12-03 15:17:56.287000             🧑  作者: Mango
在 Node.js 中,每个 TLS/SSL 连接都有一个x509证书链,该链中的每个证书都有一个issuerCertificate属性,该属性指向证书中签署当前证书的颁发者证书。
certificate.issuerCertificate
x509.issuerCertificate 属性引用一个X.509证书对象,该对象是作为颁发方由当前证书签署的证书。如果证书是自签名的,那么这个属性将为空。在TLS连接建立后,可以使用这个属性来查看证书链。
以下代码片段演示如何打印服务器证书和颁发者证书的主题和颁发者。
const https = require('https');
const fs = require('fs');
const options = {
key: fs.readFileSync('server-key.pem'),
cert: fs.readFileSync('server-cert.pem')
};
https.createServer(options, (req, res) => {
const cert = req.socket.getPeerCertificate();
console.log(`Server cert subject: ${cert.subject.CN}`);
console.log(`Issuer cert subject: ${cert.issuerCertificate.subject.CN}`);
res.end('Hello, TLS\n');
}).listen(443);
在这个例子中,我们创建了一个HTTPS服务器,并在TLS连接建立之后,使用 getPeerCertificate()
方法得到客户端传递给服务器的证书对象,并打印了服务器证书子主题和颁发者子主题。
接着,我们使用 issuerCertificate
属性访问颁发者证书对象,并打印颁发者证书子主题。
x509.issuerCertificate 属性是一种指向颁发当前证书的颁发者证书的引用。我们可以使用这个属性来查看证书链,并在需要时检查证书是否有效。