【问题标题】:Using Node.js with TLS getting HTTP hostname wrong error使用带有 TLS 的 Node.js 获取 HTTP 主机名错误错误
【发布时间】:2016-05-05 22:33:07
【问题描述】:

我正在尝试编写一个简单的 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);

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

有没有其他人遇到过这个错误,并且知道如何解决它?

【问题讨论】:

  • 你用的是什么http客户端?
  • 在失败的场景中,我们使用 JAX-RS 作为客户端。

标签: node.js websphere-liberty tls1.2


【解决方案1】:

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

【讨论】:

  • 这就是问题所在。谢谢!
猜你喜欢
  • 2019-05-10
  • 2015-08-17
  • 2012-01-29
  • 2016-04-17
  • 1970-01-01
  • 2021-08-12
  • 1970-01-01
  • 2017-12-13
  • 2015-11-22
相关资源
最近更新 更多