[英]Extract certificate from SSLContext
我以标准方式创建SSLContext:
问题是-如何从SSLContext提取密钥库和证书数据? 任务是从证书中获取指纹哈希。
甚至有可能还是我必须单独获取它,从文件中读取证书?
如果您有一个自定义的TrustManager,则可以完成。 您可以为该自定义类引用此链接 。 查找私有的SavingTrustManager
静态类。
在使用Java的默认TrustManager的位置,请使用此类,以便可以检索服务器发送的证书。
SSLContext context = SSLContext.getInstance("TLS");
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(dummyTrustStore);
X509TrustManager defaultTrustManager = (X509TrustManager) tmf.getTrustManagers()[0];
SavingTrustManager savingTrustManager = new SavingTrustManager(defaultTrustManager);
context.init(null, new TrustManager[] { savingTrustManager }, null);
SSLSocketFactory factory = context.getSocketFactory();
在开始握手之后 ,您可以从静态成员变量chain
的SavingTrustManager获取证书,例如:
savingTrustManager.chain
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.