【发布时间】:2020-04-06 08:58:15
【问题描述】:
我试图了解TrustStrategy 对loadTrustMaterial 方法采用什么。
public SSLContextBuilder loadTrustMaterial(KeyStore truststore,
TrustStrategy trustStrategy)
throws NoSuchAlgorithmException,
KeyStoreException
我找到了四个不同的例子,我很想知道这四个之间的区别,因为描述太少,无法理解区别/用法/优点/缺点。
以下是四个不同的代码示例:
TrustStrategy:这似乎是我们正在覆盖标准的 JSSE 证书验证过程,但它总是返回 true,所以它是否也信任无效证书?
TrustStrategy trustStrategy = new TrustStrategy() {
@Override
public boolean isTrusted(X509Certificate[] x509Certificates, String authType) throws CertificateException {
return true;
}
};
SSLContextBuilder sslContextBuilder = SSLContexts.custom()
.loadTrustMaterial(trustStore, trustStrategy);
NULL:我们没有给出任何策略,它会做什么?
SSLContextBuilder sslContextBuilder = SSLContexts.custom()
.loadTrustMaterial(trustStore, null);
TrustAllStrategy:它会信任所有已签名的证书,但这样安全吗?
SSLContextBuilder sslContextBuilder = SSLContexts.custom()
.loadTrustMaterial(trustStore, new TrustAllStrategy());
TrustSelfSignedStrategy:这和 TrustAllStrategy 有什么区别?
SSLContextBuilder sslContextBuilder = SSLContexts.custom()
.loadTrustMaterial(trustStore, new TrustSelfSignedStrategy());
请帮我理解这四个版本的例子之间的区别,好吗?提前致谢。
【问题讨论】:
标签: java ssl ssl-certificate truststore