一尘不染

使用openssl从服务器获取证书

linux

我正在尝试获取远程服务器的证书,然后可以将其用于添加到我的密钥库中并在我的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标志,但似乎无济于事。我尝试了多条路径都无济于事。

请让我知道我要去哪里了。


阅读 1021

收藏
2020-06-02

共1个答案

一尘不染

事实证明,这里存在更多的复杂性:我需要提供更多详细信息来进行滚动。我认为这与以下事实有关:它的连接需要客户端身份验证,并且握手器需要更多信息才能继续进行证书转储的阶段。

这是我的工作命令:

openssl s_client -connect host:port -key our_private_key.pem -showcerts \
                 -cert our_server-signed_cert.pem

希望这对任何可以提供更多信息的人来说都是正确的方向。

2020-06-02