我正在尝试编写一个简单的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);
所以我猜这是我的第一个问题 - 我可以绕过主机名验证吗?
是否有其他人遇到此错误,并知道绕过它的方法?
答案 0 :(得分:0)
这是客户端验证主机名,而不是服务器。您从未提及证书中使用的主机名 - 如果它与您用于从客户端解决的主机名不匹配:修复证书。