首页 > 解决方案 > 带有证书(.crt)和带有密码的私钥(.pem)的 java http 客户端

问题描述

我是 Java 新手,发现 HTTP 通信非常困难。我正在尝试在使用 .crt 证书和 pem 私钥的 java 中转换以下 curl 请求。

curl -X POST 'https://oauthasservices.cert.mydomain.com/oauth2/apitoken?grant_type=client_credentials'\
-H 'Accept: application/json' \
--cert my_cert.crt \
--key my-private-key.pem \
-d 'grant_type=client_credentials'
Enter PEM pass phrase: myphrase ==> access token retrieved .

我无法理解如何在 Java 中创建 SSL 上下文/密钥存储时传递私钥和密码。

    keyStore.load(new FileInputStream(keyStorePath), keystorePassword.toCharArray());
    KeyManagerFactory kmf = 
    KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
    kmf.init(keyStore, keystorePassword.toCharArray());
    SSLContext ctx = SSLContext.getInstance("TLS");// something else?
    ctx.init(kmf.getKeyManagers(), null, null);
    SSLSocketFactory sslSocketFactory = ctx.getSocketFactory();

请让我知道处理 crt 证书文件和私钥的最佳方法是什么?

标签: javacertificate

解决方案


推荐阅读