我正在尝试获取远程服务器的证书,然后我可以使用它来添加到我的密钥库并在我的java应用程序中使用.
一位资深开发者(节假日:())告诉我,我可以运行这个:
openssl s_client -connect host.host:9999
Run Code Online (Sandbox Code Playgroud)
要获取原始证书,我可以将其复制并导出.我收到以下输出:
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:
Run Code Online (Sandbox Code Playgroud)
我也试过这个选项
-showcerts
Run Code Online (Sandbox Code Playgroud)
而这一个(在debian上运行你的头脑)
-CApath /etc/ssl/certs/
Run Code Online (Sandbox Code Playgroud)
但得到同样的错误.
这个消息来源说我可以使用那个CApath标志,但它似乎没有帮助.我尝试了多条路径无济于事.
请让我知道我哪里出错了.
我刚刚阅读了有关什么是HTTPS服务的文章,并了解了https的基本知识。
请求https内容时,服务器将向浏览器发送公钥,以便每次浏览器接收到的数据都将使用公钥解密。
我的问题是什么是CA证书?我们为什么需要它?