首页 > 编程语言 > 详细

Java通过 p12 建立ssl链接

时间:2015-11-02 14:06:18      阅读:365      评论:0      收藏:0      [点我收藏+]
public static void main(String[] args) throws UnrecoverableKeyException, KeyManagementException, NoSuchAlgorithmException, KeyStoreException, CertificateException, FileNotFoundException, IOException {		
		ResourceLoader resourceLoader = new DefaultResourceLoader();
		InputStream keyStore = resourceLoader.getResource("test.p12").getInputStream();
		String   keyStorePassword = "111111";    
		String  keyPassword = "111111";    
		String   KeyStoreType= "PKCS12";    
		String   KeyManagerAlgorithm = "SunX509";    
		String   SSLVersion = "SSLv3";
		new Test01().getHttpsURLConnection(null, keyStore, keyStorePassword, keyPassword, KeyStoreType, KeyManagerAlgorithm, SSLVersion);
}
public HttpURLConnection getHttpsURLConnection(URL url, InputStream  keystore,
	    String   keyStorePass,String  keyPassword, String  KeyStoreType
	    ,String KeyManagerAlgorithm, String  SSLVersion)
	    throws NoSuchAlgorithmException, KeyStoreException,
	        CertificateException, FileNotFoundException, IOException,
	        UnrecoverableKeyException, KeyManagementException {
	    System.setProperty("javax.net.debug","ssl,handshake,record");

	    SSLContext sslcontext = SSLContext.getInstance(SSLVersion);
	    KeyManagerFactory kmf =  KeyManagerFactory.getInstance(KeyManagerAlgorithm);
	    KeyStore ks = KeyStore.getInstance(KeyStoreType);
	    ks.load(keystore, keyStorePass.toCharArray());
	    kmf.init(ks, keyPassword.toCharArray());

	     TrustManagerFactory tmf = TrustManagerFactory
	            .getInstance(TrustManagerFactory.getDefaultAlgorithm());
	    tmf.init(ks);
	    TrustManager[] tm = tmf.getTrustManagers();

	    sslcontext.init(kmf.getKeyManagers(), tm, null);
	    SSLSocketFactory sslSocketFactory = sslcontext.getSocketFactory();
	    HttpsURLConnection.setDefaultSSLSocketFactory(sslSocketFactory);
	    //HttpsURLConnection httpsURLConnection = ( HttpsURLConnection)url.openConnection();

	    return null;
	}

最开始拿到p12的时候,给的密码是错的,试了好久,最后断定是p12文件的密码不正确,

于是通过pem和key重新生成了一个p12文件,密码自己设置后,就成功了。

Java通过 p12 建立ssl链接

原文:http://my.oschina.net/u/555639/blog/524821

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!