使用 Node.js 和 TLS 获取 HTTP 主机名错误错误

Using Node.js with TLS getting HTTP hostname wrong error

我正在尝试编写一个简单的 Node.js 服务器应用程序,它将接受客户端请求,并允许我更改要使用的 TLS/SSL 协议。它适用于浏览器 (Firefox)。

但是,当我从 WebSphere Liberty Profile 调用 Node.js 服务器时,无论我尝试使用哪种 TLS/SSL 协议,我都会收到非常混乱的错误消息:

[ERROR   ] IOException invoking https://dlwester:32080/W3CookieServiceEmulator/workplace/services/w3cookie/callback/auth_data: HTTPS hostname wrong:  should be <dlwester>  

如您所见,它告诉我使用了错误的主机名,但它告诉我应该使用的主机名是我已经在使用的主机名。我什至尝试过使用端口 443,这样我就不需要指定端口,但它仍然给我相同的错误消息。

我不确定错误是出在 Node.js 还是我的 WLP 代码(使用 JAX-RS 客户端)。我在 Node.js 中没有找到绕过验证主机名的方法。

var options = {
    key: 'my.key',
    cert: 'my.cert',
    ciphers: 'TLSv1.2,TLSv1.1,TLSv1.0,SSLv3',
    honorCipherOrder: true,
    rejectUnauthorized: false
}
server = https.createServer(options, requestListener);

所以我想这是我的第一个问题 - 我可以绕过主机名验证吗?

有没有其他人运行遇到这个错误,并且知道解决它的方法?

这是验证主机名的客户端,不是服务器。您从未提及证书中使用的主机名——如果它与您用于从客户端寻址的主机名不匹配:修复证书。