假设您的证书为PEM格式。您可以在代码中嵌入它,并使用BouncyCastle的的
PEMReader把它变成一个
X509Certificate实例。完成此 *** 作后,
KeyStore在内存中创建一个实例,并将此X.509证书放入其中。然后,
SSLContext使用该实例化新的实例
KeyStore作为信任库,并让您的HTTP客户端使用它。
看起来像这样(未尝试过,请记住关闭读者并捕获异常…):
PEMReader pemReader = new PEMReader(new StringReader("----- BEGIN ......");X509Certificate cert = (X509Certificate) pemReader.readObject();KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());ks.load(null, null);ks.setCertificateEntry("some name", cert);TrustManagerFactory tmf = TrustManagerFactory.getInstance( TrustManagerFactory.getDefaultAlgorithm());tmf.init(ks);SSLContext sc = SSLContext.getInstance("TLS");sc.init(null, tmf.getTrustManagers(), null);
然后,将其
SSLContext用于连接。如果使用的是4.x版,则可以使用Apache
HttpClient的SSLSocketFactory进行此 *** 作(如果使用的是3.x版,则可以进行此 *** 作)。我建议现在使用Apache
HttpClient4.x。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)