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

使用java客户端连接到ssl服务器,java,security,ssl-certificate,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)。基本上,您必须创建一个“请参见此处”的链接。创建SSLSocketFactory后,可以在从URL创建连接时进行设置

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

我从.crt文件生成了ca-cert.pem文件,然后 api要求使用openssl从.p12文件中获取client-cert.pem和client-key.pem文件

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


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

基本上,您必须创建一个“请参见此处”的链接。创建SSLSocketFactory后,可以在从URL创建连接时进行设置,如下所示

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

另外,为了方便地将证书加载到SSLSocketFactory中,您需要将证书转换为Java喜欢的JKS格式。您可以使用java附带的一个名为的程序来帮助您解决问题。

您基本上需要创建一个see here for a。创建SSLSocketFactory后,可以在从URL创建连接时进行设置,如下所示

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
另外,为了方便地将证书加载到SSLSocketFactory中,您需要将证书转换为Java喜欢的JKS格式。您可以使用java附带的名为的程序来帮助您