Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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 获得;无效算法参数异常“;在发布到HTTPS网站时_Java_Jsp_Keystore_Sslexception - Fatal编程技术网

Java 获得;无效算法参数异常“;在发布到HTTPS网站时

Java 获得;无效算法参数异常“;在发布到HTTPS网站时,java,jsp,keystore,sslexception,Java,Jsp,Keystore,Sslexception,我正在尝试使用以下jsp代码将数据发布到支付网关网站: System.setProperty("javax.net.ssl.trustStore ","C:\\Program Files\\Java\\jdk1.7.0_17\\jre\\lib\\security\\cacerts");\ System.setProperty("javax.net.ssl.trustStorePassword","changeit"); URL server = new URL("https://...");

我正在尝试使用以下jsp代码将数据发布到支付网关网站:

System.setProperty("javax.net.ssl.trustStore ","C:\\Program Files\\Java\\jdk1.7.0_17\\jre\\lib\\security\\cacerts");\
System.setProperty("javax.net.ssl.trustStorePassword","changeit");

URL server = new URL("https://...");

HttpURLConnection connection = (HttpURLConnection) server.openConnection();

connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("content-type","application/x-www-form-urlencoded");

connection.connect();

OutputStream os = connection.getOutputStream();
os.write(checkRequestByte);
os.close();
我已使用以下命令将.cer文件添加到java密钥库:

keytool-importcert-file“path/certFile.cer”-keystore“Java/jre7/lib/security/cacerts”-别名“alias”

我也试过这个:

keytool-importcert-file“path/certFile.cer”-keystore“Java/jdk1.7.0_17/jre/lib/security/cacerts”-别名“alias”

在这两种情况下,我都得到了这样的信息:

证书已添加到密钥库

但是当我运行它并打开页面时,我得到以下错误:

org.apache.jasper.JasperException: An exception occurred processing JSP page /process.jsp at line 36

33:     connection.setDoOutput(true);
34:     connection.setRequestProperty("content-type","application/x-www-form-urlencoded");
35: 
36:     connection.connect();
37: 
38:     OutputStream os = connection.getOutputStream();
39:     os.write(checkRequestByte);

javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty ...
我很困惑,我以前从未面对过。。。。
感谢您的评论

解决方案非常简单:D,我重新启动了tomcat,现在它就像一个魔咒一样工作;)

我在tomcat抛出InvalidalgorithParameterException时遇到了类似的问题。我设定了

 -Djavax.net.ssl.trustStore=/path/to/cacerts
并将站点的证书安装到信任库中,但https连接无法工作。最后,我在eclipse中为

java.security.InvalidAlgorithmParameterException, 
然后,在使用以下代码段引发异常时,在eclipse中使用expression视图检查系统属性:

System.getProperty("javax.net.ssl.trustStore")
我看到这个信任库位置的值在运行时被更改为与我配置的-Djavax…信任库路径不同的路径


我希望这有助于某人了解信任库的配置位置,并在运行时将其更改为其他内容。该错误实际上应该反映出加载信任库所尝试的路径。

请排除JVM信任库中缺少证书的情况,因为在这种情况下,错误可能是SSLHandshake错误,也与算法问题无关。我不明白您的意思,请您更清楚地解释一下好吗?