当我们尝试建立与服务器的TLS连接时,会得到<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.23/moment-timezone-with-data-2012-2022.min.js"></script>
。在我们的例子中,服务器正在运行openldap。我们该如何调试呢?
我们的客户代码为here
服务器日志为here
代码输出为
Error: certificate signature failure
我们检查了证书签名是否正确
Client error { Error: certificate signature failure
at TLSSocket.<anonymous> (_tls_wrap.js:1116:38)
at emitNone (events.js:106:13)
at TLSSocket.emit (events.js:208:7)
at TLSSocket._finishInit (_tls_wrap.js:643:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:473:38) code: 'CERT_SIGNATURE_FAILURE' }
在调试器中,我们已经能够逐步完成代码,直到_tls_wrap.js第1116行:
root@fcaf052d50fc:/container/service/slapd/assets/certs# openssl verify -CAfile jnj-ca-chain.pem jnj-ldap-server-tls.pem
jnj-ldap-server-tls.pem: OK
这是失败的地方,我们无法进入上述方法。进行搜索带来了this
tcpdump显示我们似乎正在从服务器获取预期的证书:
所以这非常奇怪:
答案 0 :(得分:0)
我们使用
进行了调试$ openssl s_client -connect localhost:636 -state -nbio -CAfile jnj-ca-chain.pem -showcerts
表明返回给客户端的TLS证书与提供给服务器的TLS证书不同(可能是GnuTLS [1]中的错误)