如何通过REST使用Java中的.pfx证书?

问题描述

我是编程新手。我正在尝试编写一个Java应用程序,该应用程序通过IIS Server Application通过REST获取一些参数,然后使用这些参数启动本地应用程序。这就是理论,现在我的问题是我需要使用带有私钥的.pfx证书。据我了解,我需要将此证书导入到cacerts密钥库中,以便我的Java应用程序可以连接到IIS。我意识到您无法导入.pfx文件。我尝试将证书导入certmgr.msc,然后将其导出为.cer文件,但是随后丢失了私钥(我将其导入到Java密钥库中没有成功)。我下载了密钥库资源管理器,并尝试从那里导入我的.pfx证书,但是导入后无法将更改保存在cacerts文件中。现在,我试图在网络上找到答案或解决方案,但自几个小时以来我就陷入了困境。

这是我的代码

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class TestIt {
    public static void main(String[] args) {
         try 
         {
               URL url = new URL("https://localhost:44302/.........");
               HttpURLConnection conn = (HttpURLConnection) url.openConnection();
               conn.setRequestMethod("GET");
               BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
               StringBuilder response = new StringBuilder();
               String inputLine;

               while ((inputLine = in.readLine()) != null)
               {
                   response.append(inputLine);
               }
               in.close(); 
 
               System.out.println(response.toString()); 
    
          }
         
          catch(IOException e)
          {
            System.out.println("Something went wrong: " + e);
          }
    }
} 

控制台输出

Something went wrong. javax.net.ssl.SSLHandshakeException: PKIX path validation Failed: 
java.security.cert.CertPathValidatorException: signature check Failed

我将eclipse与AdoptOpenJDK jdk-11.0.8.10-hotspot一起使用。 请怜悯我,我还是一个初学者。这也是我第一次在互联网上写问题,而不是说英语的人,所以请您原谅我有拼写错误。先感谢您!我真的很感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)