首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从SSLContext提取证书

从SSLContext提取证书
EN

Stack Overflow用户
提问于 2016-11-10 14:33:45
回答 1查看 3.1K关注 0票数 4

我正在以标准的方式创建SSLContext:

  • 取.p12证书文件,
  • 创建KeyStore并将证书加载到其中,
  • 创建KeyManagerFactory,用KeyStore插入它,得到KeyManagers,
  • 创建TrustManagerFactory,将其输入为null,并获取TrustManagers。
  • 创建SSLContext并使用KeyManagers和TrustManagers插入它。

问题是-如何从KeyStore中提取SSLContext和证书数据?任务是从证书中获取指纹散列。

这是否可能,或者我必须单独获得它,从文件中读取证书?

EN

回答 1

Stack Overflow用户

发布于 2016-11-10 16:41:06

如果您有一个自定义的TrustManager,就可以这样做。您可以引用该自定义类的链接。查找私有的SavingTrustManager静态类。

以及您使用java的默认TrustManager的位置,使用这个类,这样您就可以检索服务器发送的证书。

代码语言:javascript
运行
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40530117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档