为了账号安全,请及时绑定邮箱和手机立即绑定

使用 .p12 文件执行对休息服务器的请求

使用 .p12 文件执行对休息服务器的请求

红糖糍粑 2022-11-10 16:52:51
我正在尝试向为我提供 .p12 文件的服务器执行请求,以便与其他服务建立安全连接,我正在执行以下操作以使用密钥设置 HttpClient:SSLContext sslContext =SSLContextBuilder                .create().loadKeyMaterial(ResourceUtils.getFile("classpath:keystore/file.p12"), "secret".toCharArray(), "secret".toCharArray())                .build();    return HttpClientBuilder            .create()            .setConnectionManager(connManager())            .setSSLContext(sslContext)            .setDefaultRequestConfig(requestConfig())            .build();当我使用OAuth2RestOperations执行请求时,我得到:401 , Non existing certificate or invalid 
查看完整描述

3 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

我最近有类似的要求。这是我使用的代码:


    KeyStore clientStore = KeyStore.getInstance("PKCS12");

    try {

        clientStore.load(ResourceUtils.getFile("classpath:keystore/file.p12"), "secret".toCharArray());

    } catch (IOException e) {

        //handle exception

    }


    KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());

    kmf.init(clientStore, "secret".toCharArray());

    KeyManager[] kms = kmf.getKeyManagers();


    SSLContext sslContext = SSLContext.getInstance("TLS");

    sslContext.init(kms, null, new SecureRandom());


    SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(sslContext);


    HttpClientBuilder builder = HttpClientBuilder.create();

    return builder.setSSLSocketFactory(socketFactory).build();


查看完整回答
反对 回复 2022-11-10
?
UYOU

TA贡献1878条经验 获得超4个赞

我认为这实际上是一个重复的问题。

请参阅此问题的答案Java HTTPS client certificate authentication


查看完整回答
反对 回复 2022-11-10
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

在所有示例中,您需要调用loadKeyMaterial方法KeyStore

 public SSLContextBuilder loadKeyMaterial(KeyStore keystore,

使用文件路径加载 keyStore,例如:

keyStore = KeyStore.getInstance("PKCS12");
FileInputStream inputStream = new FileInputStream(new File(certPath));
keyStore.load(inputStream, certPassword.toCharArray());


查看完整回答
反对 回复 2022-11-10
  • 3 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号