我使用NodeJS创建了一个http客户端,如下所示:
var options = {
hostname: 'localhost',
port: 8445,
path: 'authorisation/getIt',
method: 'GET',
ca: fs.readFileSync('root_cert.pem', 'utf8'),
key: fs.readFileSync('consumer_private_key.pem', 'utf8'),
cert: fs.readFileSync('consumer_cert.pem', 'utf8'),
passphrase: 'password',
headers: {
"Content-Type": "application/json",
"Content-Length": Buffer.byteLength(body)
}
};
var request = new https.request(options, function(response) {
response.on('data', function(chunk) {
console.log("%s", chunk);
})
当我针对服务器运行此客户端时,我收到错误
错误[ERR_TLS_CERT_ALTNAME_INVALID]:主机名/ IP不匹配 证书的altnames:主持人:localhost。不是证书的CN: LC_AAA_Server at Object.checkServerIdentity(tls.js:225:17) 在TLSSocket.onConnectSecure(_tls_wrap.js:1046:27) 在TLSSocket.emit(events.js:127:13) 在TLSSocket._finishInit(_tls_wrap.js:633:8)
如果我将主机名字段更改为服务器证书的CN中的文本,则客户端会给出错误
错误:getaddrinfo ENOTFOUND LC_AAA_Server
如何更改主机名以匹配服务器证书的CN,但是使客户端仍然指向本地主机上托管的服务器。
提前致谢