2016-05-05 27 views
0

我想写一个简单的Node.js服务器应用程序,它将接受客户端请求,并允许我更改要使用的TLS/SSL协议。它适用于浏览器(Firefox)。使用Node.js与TLS获取HTTP主机名错误

然而,当我打电话从WebSphere自由女神档案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

您使用的是哪个http客户端? – covener

+0

在失败的场景中,我们使用JAX-RS作为客户端。 – Westy

回答

0

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

+0

这是问题所在。谢谢! – Westy