栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

java javax.net.ssl.keystore冲突解决?

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java javax.net.ssl.keystore冲突解决?

小编典典

仍在实施中,但我相信可以通过InputStream从jar中加载密钥库,并以编程方式显式设置TrustStore(与设置System属性相对)。

得到它的工作!

InputStream keystoreInput = Thread.currentThread().getContextClassLoader()

.getResourceAsStream(/client.ks");

InputStream truststoreInput = Thread.currentThread().getContextClassLoader()

.getResourceAsStream(/client.ts");

setSSLFactories(keystoreInput, "password", truststoreInput);

keystoreInput.close();

truststoreInput.close();

private static void setSSLFactories(InputStream keyStream, String keyStorePassword,

InputStream trustStream) throws Exception

{

// Get keyStore

KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());

// if your store is password protected then declare it (it can be null however)

char[] keyPassword = keyStorePassword.toCharArray();

// load the stream to your store

keyStore.load(keyStream, keyPassword);

// initialize a key manager factory with the key store

KeyManagerFactory keyFactory =

KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());

keyFactory.init(keyStore, keyPassword);

// get the key managers from the factory

KeyManager[] keyManagers = keyFactory.getKeyManagers();

// Now get trustStore

KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());

// if your store is password protected then declare it (it can be null however)

//char[] trustPassword = password.toCharArray();

// load the stream to your store

trustStore.load(trustStream, null);

// initialize a trust manager factory with the trusted store

TrustManagerFactory trustFactory =

TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());

trustFactory.init(trustStore);

// get the trust managers from the factory

TrustManager[] trustManagers = trustFactory.getTrustManagers();

// initialize an ssl context to use these managers and set as default

SSLContext sslContext = SSLContext.getInstance("SSL");

sslContext.init(keyManagers, trustManagers, null);

SSLContext.setDefault(sslContext);

}

2020-09-16

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/910869.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号