📅  最后修改于: 2023-12-03 14:44:40.590000             🧑  作者: Mango
在TLS凭证交换后,该方法能够返回包含对等方证书详细信息的对象。
tlsSocket.getPeerCertificate([detailed])
detailed
:一个可选的布尔类型参数,如果设置为 true
,则返回的证书包括所有的数据(包括公钥和私钥)。默认值为 false
。该方法返回一个 JSON 对象,表示对等方证书的详细信息。对象包括以下字段:
subject
:一个JSON对象,包括了这个证书的所有主题(Subject)字段。issuer
:一个JSON对象,包含了这个证书颁发者的信息。raw
:一个 Buffer
对象,包含了对等方证书的所有信息。valid_from
:一个字符串,表示证书的有效开始时间。valid_to
:一个字符串,表示证书的有效截止时间。serialNumber
:一个字符串,表示证书的序列号。fingerPrint
:一个字符串,表示证书的指纹。const tls = require('tls');
const fs = require('fs');
const options = {
key: fs.readFileSync('server-key.pem'),
cert: fs.readFileSync('server-cert.pem')
};
const server = tls.createServer(options, (socket) => {
console.log(`Server connected: ${socket.authorized ? 'authorized' : 'unauthorized'}`);
console.log('Server TLS version: ', socket.getProtocol());
const peerCertificate = socket.getPeerCertificate(true);
console.log('Server Peer Certificate: ', peerCertificate);
});
server.listen(8000, () => {
console.log('Server running on port 8000.');
});
在以上示例中,创建了一个 TLS 服务器,并且在服务器端口监听连接。当有客户端连接到该服务器时,服务器通过 socket.getPeerCertificate(true)
方法获得了对等方证书的详细信息,并打印在控制台上。
通过 tlsSocket.getPeerCertificate()
方法,开发者能够快速获得对等方证书的详细信息,以此进行一些必要的安全验证。本文介绍了该方法的语法、参数、返回值及示例。