使用java客户端连接到ssl服务器

时间:2013-07-15 16:13:05

标签: java security ssl-certificate

我的api提供商给了我一个证书,它是.crt文件和.p12文件。

我从.crt文件生成了ca-cert.pem文件 根据api的要求,使用openssl从.p12文件获取client-cert.pem和client-key.pem文件。

我的api提供商也为我提供了基本身份验证的用户名密码。

我的问题是如何使用Java使用这些证书和凭据连接到服务器URL https(rest)。

1 个答案:

答案 0 :(得分:1)

您基本上必须创建SSLSocketFactory,请参阅此处example。一旦你创建了SSLSocketFactory,就可以在从URL创建一个Connection时设置它。

SSLSocketFactory sf = ... see that example
URL url = new URL("https://google.com");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setSSLSocketFactory(sf);
... Now do stuff with that connection like GET or POST

另外,您可能希望将证书转换为Java更喜欢的JKS格式,以便将它们轻松加载到SSLSocketFactory中。您可以使用java附带的名为keytool的程序来帮助您。