我一直在尝试使用Bluemix的安全网关服务将我的Node.js Public Bluemix应用程序连接到防火墙后面的DB2服务器。当我尝试通过使用TCP一切正常。我现在正在尝试使用TLS:Mutual Auth选项,但我无法使其正常工作。
我遵循了本教程(https://developer.ibm.com/bluemix/2015/04/17/securing-destinations-tls-bluemix-secure-gateway/)并且似乎创建了隧道(我可以在网关客户端的日志中看到)但没有数据通过。
在作为Options
参数的对象tls.connect
中,如果我设置rejectUnauthorized: true
,那么我得到" UNABLE_TO_GET_ISSUER_CERT"而我正在使用生成的目标证书。如果我设置rejectUnauthorized: false
,那么它似乎工作,连接打开但没有任何结果,它只是挂起。在这两种情况下,我使用的代码都是在未设置TLS时使用的,并且基于DB2的ibm_db
节点驱动程序。
有没有人有过这方面的经验,我现在已经挣扎了好几天了,任何帮助都会非常感激。
答案 0 :(得分:0)
经过一番讨论后,我们确定问题的一部分是在CA中明确说明了一段证书链,导致发出UNABLE_TO_GET_ISSUER_CERT
错误。这可以通过将完整链添加到CA或不向CA明确添加任何内容来解决(因为证书是公开签名的)。
已发现的一个基本问题是,DB2的ibm_db
节点驱动程序似乎无法正常工作。