在NodeJS中创建HTTPS客户端 - ERR_TLS_CERT_ALTNAME_INVALID

时间:2018-05-02 13:42:38

标签: 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', '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,但是使客户端仍然指向本地主机上托管的服务器。

提前致谢

0 个答案:

没有答案