我正在尝试获取远程服务器的证书,然后可以将其用于添加到我的密钥库中并在我的Java应用程序中使用。
一位资深开发人员(正在度假:()告诉我可以运行此程序:
openssl s_client -connect host.host:9999
为了获得原始证书,我可以将其复制并导出。我收到以下输出:
depth=1 /C=NZ/ST=Test State or Province/O=Organization Name/OU=Organizational Unit Name/CN=Test CA verify error:num=19:self signed certificate in certificate chain verify return:0 23177:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1086:SSL alert number 40 23177:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:188:
我也尝试过这个选项
-showcerts
和这个(在debian上运行)
-CApath /etc/ssl/certs/
但是得到同样的错误。
此消息源说我可以使用该CApath标志,但似乎无济于事。我尝试了多条路径都无济于事。
请让我知道我要去哪里了。
事实证明,这里存在更多的复杂性:我需要提供更多详细信息来进行滚动。我认为这与以下事实有关:它的连接需要客户端身份验证,并且握手器需要更多信息才能继续进行证书转储的阶段。
这是我的工作命令:
openssl s_client -connect host:port -key our_private_key.pem -showcerts \ -cert our_server-signed_cert.pem
希望这对任何可以提供更多信息的人来说都是正确的方向。