Node.js 在NodeJS中创建HTTPS客户端-错误\u TLS\u证书\u ALTNAME\u无效

Node.js 在NodeJS中创建HTTPS客户端-错误\u TLS\u证书\u ALTNAME\u无效,node.js,Node.js,我使用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', 'utf

我使用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\u TLS\u CERT\u ALTNAME\u INVALID]:主机名/IP不匹配 证书的altnames:Host:localhost。不是证书的CN: LC_AAA_服务器 位于Object.checkServerIdentity(tls.js:225:17) 在TLSSocket.onConnectSecure(_tls_wrap.js:1046:27) 在TLSSocket.emit(events.js:127:13) 完成时(包装:633:8)

如果我将主机名字段更改为服务器证书CN中的文本,则客户端将给出一个错误

错误:getaddrinfo ENOTFOUND LC_AAA_服务器

如何更改主机名以匹配服务器证书的CN,但使客户端仍然指向本地主机上托管的服务器


提前感谢

没有办法做到这一点。您不能用不同的alt名称生成另一个证书吗?