相关疑难解决方法(0)

以编程方式从PEM获取KeyStore

如何以编程方式从包含证书和私钥的PEM文件中获取KeyStore?我试图通过HTTPS连接向服务器提供客户端证书.我已经确认,如果我使用openssl和keytool获取jks文件,我会动态加载客户端证书.我甚至可以通过动态读取p12(PKCS12)文件来使其工作.

我正在研究使用BouncyCastle的PEMReader类,但我无法解决一些错误.我正在运行带有-Djavax.net.debug = all选项的Java客户端和带有调试LogLevel的Apache Web服务器.我不知道该找什么.Apache错误日志表明:

...
OpenSSL: Write: SSLv3 read client certificate B
OpenSSL: Exit: error in SSLv3 read client certificate B
Re-negotiation handshake failed: Not accepted by client!?
Run Code Online (Sandbox Code Playgroud)

Java客户端程序指示:

...
main, WRITE: TLSv1 Handshake, length = 48
main, waiting for close_notify or alert: state 3
main, Exception while waiting for close java.net.SocketException: Software caused connection abort: recv failed
main, handling exception: java.net.SocketException: Software caused connection abort: recv failed
%% Invalidated:  [Session-3, TLS_RSA_WITH_AES_128_CBC_SHA]
main, SEND TLSv1 ALERT:  fatal, description = …
Run Code Online (Sandbox Code Playgroud)

java ssl bouncycastle jsse ssl-certificate

26
推荐指数
1
解决办法
2万
查看次数

如何在Java中覆盖HTTP连接中的DNS

Curl具有手动指定要将主机解析到的IP的功能.例如:

curl https://google.com --resolve "google.com:443:173.194.72.113"
Run Code Online (Sandbox Code Playgroud)

这在使用HTTPS时特别有用.如果它只是一个HTTP请求,我可以通过直接指定IP地址并添加主机头来实现相同的目的.但是在HTTPS中会破坏连接,因为SSL证书主机将与IP地址而不是主机头进行比较.

我的问题是,我怎样才能在Java中实现同样的目标?

java https

7
推荐指数
1
解决办法
6606
查看次数

标签 统计

java ×2

bouncycastle ×1

https ×1

jsse ×1

ssl ×1

ssl-certificate ×1