openssl s_server 双向 TLS

openssl s_server mutual TLS

我可以使用 openssl s_server 命令接受来自客户端的 TLS 会话,并要求双向 TLS - 即请求客户端证书 - 使用如下命令:-

openssl s_server -accept 4433 -cert myCert.crt -key -myKey.pem -Verify 2 -CAfile myCA.crt

当我从客户端连接时,我可以从跟踪中看到 s_client 发送了一个证书请求,正确规定了 myCA.crt 中包含的证书。然而,似乎 s_server 将接受 any 客户端证书,无论它是否由 myCA.crt 签名 - 即它不关心哪个客户端证书是已发送。

有谁知道这是预期的行为,还是我做错了什么?

openssl s_server 和 s_client 默认情况下会验证对等证书并显示验证状态,但不会因错误而停止。如果有必要,请使用 -verify_return_error 选项。