我的 api 提供者给了我一个证书,它们是 .crt 文件和 .p12 文件。
我按照api的要求使用openssl从.crt文件和client-cert.pem和client-key.pem文件从.p12文件生成了ca-cert.pem文件。
我的 api 提供商还为我提供了用于基本身份验证的用户名密码。
我的问题是如何使用这些证书和使用 Java 的凭据连接到服务器 url https (rest)。
我的 api 提供者给了我一个证书,它们是 .crt 文件和 .p12 文件。
我按照api的要求使用openssl从.crt文件和client-cert.pem和client-key.pem文件从.p12文件生成了ca-cert.pem文件。
我的 api 提供商还为我提供了用于基本身份验证的用户名密码。
我的问题是如何使用这些证书和使用 Java 的凭据连接到服务器 url https (rest)。
您基本上必须创建一个SSLSocketFactory,请参见此处的示例。创建 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
另外,您需要将证书转换为 Java 喜欢的 JKS 格式,以便轻松地将它们加载到 SSLSocketFactory 中。您可以使用java 附带的一个名为keytool的程序来帮助您。