Paypal 已更新其沙盒 API 端点和证书以使用 sha256 而不是 sha1。 要迁移我的应用程序(连接到 Paypal 以进行快速结账)以使用 sha256,
a) 从我的 paypal 帐户删除并下载新证书并转换 它为 .p12 格式 使用openssl确认证书使用的是sha256withRsa
b) 确认/etc/ssl/certs/ca-certs.crt 拥有链接中给出的 verisign G5 CA 证书 https://gist.github.com/robglas/3ef9582c6292470a1743
仍然无法从我使用 HttpClient 的 Java 代码连接到 Paypal 沙箱。握手失败
在java代码中 - 使用 SSLContext.getInstance("SSL")
使用自定义信任库
Class CustomTrustManager implements X509TrustManager {
public boolean checkClientTrusted(java.security.cert.X509Certificate[] chain) {
return true;
}
public boolean isServerTrusted(java.security.cert.X509Certificate[] chain) {
return true;
}
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {
}
public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {
}
我正在使用实例 SunX509 的 KeyManagerFactory 并将其初始化为 pkcs12 keystore 。
我错过了什么吗?请帮忙!
最佳答案
这个比较适合评论,但是我没有足够的声望。 过去我在其他服务上遇到过类似的问题,问题是 java 7 默认使用旧的 ssl 算法,如果可以,请尝试使用 java 8。如果您必须坚持使用当前的 java 版本,请尝试使用不同的算法或查看是否可以从 paypal 获取有关 ssl 配置的一些信息。这link可能有帮助
关于java - Paypal证书升级为sha256,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34916277/