Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java中的.pfx证书而不是REST?_Java_Iis_Ssl Certificate_Pfx - Fatal编程技术网

如何使用Java中的.pfx证书而不是REST?

如何使用Java中的.pfx证书而不是REST?,java,iis,ssl-certificate,pfx,Java,Iis,Ssl Certificate,Pfx,我对编程比较陌生。我正在尝试编写一个小型Java应用程序,它从IIS服务器应用程序中获取一些参数,然后使用这些参数启动本地应用程序。这就是理论,现在我的问题是我需要使用带有私钥的.pfx证书。据我所知,我需要将此证书导入我的cacerts密钥库,以便我的java应用程序可以连接到我的IIS。我意识到你不能导入.pfx文件。我试图将证书导入certmgr.msc,然后将其导出为.cer文件,但随后我丢失了私钥(我将它们导入了java密钥库,但没有成功)。我下载了密钥库资源管理器,并试图从中导入.p

我对编程比较陌生。我正在尝试编写一个小型Java应用程序,它从IIS服务器应用程序中获取一些参数,然后使用这些参数启动本地应用程序。这就是理论,现在我的问题是我需要使用带有私钥的.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和OpenJDK jdk-11.0.8.10-hotspot。 请饶了我吧,我还是个初学者。这也是我第一次在网上写问题,我不是一个说英语的人,所以如果有拼写错误,请原谅我。提前谢谢你!我真的很感谢你的帮助