当前位置: 首页 > 面试题库 >

java.security.InvalidAlgorithmParameterException:在Linux上trustAnchors参数必须为非空,否则默认的truststore为什么为空

常光明
2023-03-14
问题内容

当您用Google搜索以下异常:时java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty,会显示多个结果。但是,没有确切的解决方案,只有猜测。

当我尝试使用通过SSL的开放连接时,就会出现问题(至少在我看来)。它在我的Windows机器上可以正常工作,但是当我将其部署到linux机器(安装了sun的jre)时,它会失败,并带有上述异常。

问题在于,由于某种原因,JRE的默认信任库为空(大小仅为32字节,而在Windows上为80kb)。

当我将jre/lib/security/cacerts文件从Windows 复制到Linux时,它运行良好。

问题是-为什么linux jre的信任库为空?

请注意,这是在带有AMI linux的Amazon EC2实例上发生的,因此这可能是由于某些亚马逊政策(我认为Java已预先安装,但我不确定)


问题答案:

用于Linux的标准Sun JDK具有绝对好的证书,并且所有文件都位于指定目录中。问题是您使用的安装。



 类似资料:
  • 问题内容: 我正在尝试在Jenkins / Hudson上配置我的电子邮件,并且不断收到错误消息: 我已经在网上看到了大量有关该错误的信息,但是我没有得到任何帮助。我在Fedora Linux(不是OpenJDK)上使用Sun的JDK。 这是我尝试过的一些方法。我试着从以下这个建议后,但复制从Windows的cacerts到托管詹金斯没有工作,我的Fedora箱。我尝试按照本指南进行操作,因为我试

  • 问题内容: 为什么这段代码会引发SyntaxError? 尽管以下代码段运行时没有可见错误: 问题答案: 必须将所有必需的参数放在任何默认参数之前。仅仅是因为它们是强制性的,而默认参数不是必需的。从语法上讲,如果允许使用混合模式,解释器将 无法 决定哪些值与哪些参数匹配。如果参数的输入顺序不正确,则会引发A : 让我们使用您的函数来查看关键字参数。 假设其允许声明函数如上,然后使用上述声明,我们可

  • 我有一个spring boot应用程序(在HTTPS上运行,但在自签名证书上运行)。它使用JDK1.8(不是开放式JDK),我写了一段代码,其中我的代码涉及第三方API。早些时候,我的代码还在工作。但对于其他一些任务,我必须导入公司提供的证书来进行应用。为此,我将密钥库从JKS更改为PCKS12标准。 现在,在更改密钥库(我这样做是为了使用公司提供的证书启用我的应用程序HTTPS)后,我的代码在第

  • 当我尝试安装maven项目的时,我得到以下错误。请帮助。 无法执行目标org.apache.maven.plugins:maven-resources-plugin:2.6:项目pm上的资源(default-资源):目标org.apache.maven.plugins的执行default-资源:maven-resources-plugin:2.6:资源失败:插件org.apache.maven.p

  • 在任何人结束这个问题或标记为重复之前,我必须说我已经研究了所有的互联网,没有发现任何类似的问题。 问题是我在Virtual Box映像中安装了一个新的Linux Mint 19。因此,在安装 Java 8 之后,我下载了 Eclipse Scala,我尝试添加到新项目中的任何依赖项都不会被下载,并且在其 pom 中标记了一个错误.xml . 在检查url并在我的Eclipse Scala for

  • 问题内容: 当其他选项(例如或)看起来更合理时,将其设置为已编译默认值的原因是什么? 问题答案: 写这封信的那个家伙是一家瑞典公司的联席主管。 出于类似的原因,可能是Microsoft SQL Server的默认语言us_english。