gpt4 book ai didi

java - 我可以安全地假设被调用的服务器的证书是 checkServerTrusted() 数组中的第一个吗?

转载 作者:行者123 更新时间:2023-12-02 05:01:50 26 4
gpt4 key购买 nike

我试图实现X509TrustManager使用我的应用程序中的证书(例如在类文件夹中)检查服务器证书。

我正在打https网站所以当checkServerTrusted()方法 get 被调用,该方法会传递一个 X.509 证书数组。

我可以安全地假设被调用的服务器的证书是数组中的第一个吗?

为了澄清,在 checkServerTrusted() 方法中,我必须验证服务器的证书。

代码如下:

@Override
public void checkServerTrusted(X509Certificate[] certs, String authType) throws CertificateException{
InputStream inStream;
try {
inStream = new FileInputStream("E:\\Desktop\\cert\\domain.crt");
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate Mycert = (X509Certificate)cf.generateCertificate(inStream);
inStream.close();

if (certs == null || certs.length == 0 || authType == null
|| authType.length() == 0) {
throw new IllegalArgumentException("null or zero-length parameter");
}

certs[0].verify(Mycert.getPublicKey());

} catch (Exception e) {
// TODO Auto-generated catch block
throw new CertificateException("error in validating certificate" , e);
}

}

那么仅使用第一个证书进行验证是否安全?

最佳答案

in the checkServerTrusted() method, I have to validate the server's certificate.

Javadoc 中不是这么说的。您必须从提供给受信任根的链中建立一个证书路径。

So is it safe to verify with first certificate only?

没有。

关于java - 我可以安全地假设被调用的服务器的证书是 checkServerTrusted() 数组中的第一个吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28207801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com