当前位置: 首页 > 知识库问答 >
问题:

在发布到HTTPS网站时获取“Invalid算法参数异常”

周飞
2023-03-14

我正在尝试使用以下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\u 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 ...

我很困惑,我以前从未面对过。。。。谢谢你的评论

共有2个答案

魏彦
2023-03-14

我有一个类似的问题,Tomcat抛出无效算法参数异常。我设置了

 -Djavax.net.ssl.trustStore=/path/to/cacerts

并将站点的证书安装到信任库中,但https连接不起作用。最后,我在eclipse中为

java.security.InvalidAlgorithmParameterException, 

然后在使用此片段抛出异常时,使用eclipse中的表达式视图检查系统属性:

System.getProperty("javax.net.ssl.trustStore")

我看到这个信任存储位置的值在运行时已在其他地方更改为与我配置的-Djavax...信任存储路径不同的路径。

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

齐冥夜
2023-03-14

解决方案是如此简单:D,我已经重新启动了tomcat,现在它的工作原理就像一个魅力;)

 类似资料:
  • 发布网站 你现在应该有一个在本地运行的网站。 一旦你将它定制为你喜欢样子,就是时候发布它了。 Docusaurus 生成一个静态 HTML 网站,准备好由您最喜爱的网络服务器或在线托管解决方案来提供服务。 构建静态 HTML 页面 要创建您的网站的静态版本,请在 website 的目录中运行以下脚本: yarn run build # 或 `npm run build` 这将在 website

  • 我使用< code > SSL _ get _ peer _ certificate(),< code > X509 _ get _ pubkey() API获取网站(www.google.com)https证书公钥,转储公钥时如下: 我发现这和我在浏览器中看到的不一样(在Chrome中,点击URL地址栏中的挂锁,<代码>- 为什么这两种公钥不一样? 我很好奇这两种公钥数据是什么? 更新: 从Ch

  • 我正试图按照这里的步骤实现“服务集成身份验证”docusign docs,在请求访问令牌之前,它做得很好,您可以在其中发送jwt令牌(格式良好) 我总是得到“invalid_grant”,根据那个文件,是因为一些声明是无效的。这个错误还有其他原因吗?所有的声明看起来都很好 C#: 使用验证jwt令牌https://jwt.io/而且解码很好。Is docusign演示沙盒 提前谢谢daniel

  • 注意: Adobe Muse 不再添加新增功能,并将于 2020 年 3 月 26 日停止支持。有关详细信息和帮助,请参阅 Adobe Muse 服务结束页面。 在 Adobe Muse 中设计您的网站后,您可以将网站托管在 Adobe Business Catalyst 或第三方托管服务上,例如 GoDaddy。 在开始发布之前,请单击“文件”>“保存”以保存对网站设计所做的最新更改。整个网站将

  • 问题内容: 我正在尝试将数据发布到网站中,以使用Jsoup登录该网站,但是它不起作用? 我正在尝试代码 这是在pagesource中提供正常的登录页面 我也尝试过代码 这也是在pagesource中再次提供正常的登录页面。 关于相同的任何建议将不胜感激! 谢谢.... 问题答案: 我将通过举例来回答您的问题。假设您要登录到facebook。 然后,除了用户名和密码外,还有许多其他参数也通过请求传递

  • 问题内容: 所以我有这段代码: 最初我是正常人,但是我更改为这个,因为我认为这可能是标题问题。但是我仍然没有检测,我也没有。但是,它正在接收数据。 知道有什么问题吗? 编辑 好吧,我想我知道怎么了。它将其作为json对象发布,因此只能在php:// input中读取。如何在axios中将其更改为普通字符串? 问题答案: 从文档中(我没有在引用的材料中保留链接): 默认情况下,axios将JavaS