通过Java over SSL连接到web服务可以从控制台工作,但不能从Tomcat工作

通过Java over SSL连接到web服务可以从控制台工作,但不能从Tomcat工作,java,tomcat,ssl,https,Java,Tomcat,Ssl,Https,我有以下资料: 托管在可信企业域intranet上的Web服务(托管在IIS中) 用于测试与web服务的连接的Java控制台应用程序 托管在Tomcat中的Java web应用程序(在本地主机上运行) 我可以通过控制台应用程序成功地向web服务发送和接收数据。但是,当我在Tomcat托管的web应用程序中使用完全相同的代码和库时,我收到一个SSL证书错误,说明: suncertpathbuilderexception: unable to find valid certification p

我有以下资料:

  • 托管在可信企业域intranet上的Web服务(托管在IIS中)
  • 用于测试与web服务的连接的Java控制台应用程序
  • 托管在Tomcat中的Java web应用程序(在本地主机上运行)
我可以通过控制台应用程序成功地向web服务发送和接收数据。但是,当我在Tomcat托管的web应用程序中使用完全相同的代码和库时,我收到一个SSL证书错误,说明:

suncertpathbuilderexception: unable to find valid certification path to requested target
它可以通过控制台工作,但不能通过本地主机上的Tomcat工作的任何原因。值得一提的是,当托管在Tomcat中时,它也不能在我的dev(非本地主机)上工作。在启动没有可信证书的Tomcat时,可能我的目标是另一个JRE

该证书由我公司的可信企业权威机构签名,因此我猜它是一种企业范围的自签名证书。当我签入管理控制台证书管理单元时,证书颁发机构在Windows可信证书颁发机构中注册。不过我想这没关系


我是否必须使用
keytool
生成一个证书,以添加到托管此Tomcat应用程序的每个服务器上的信任存储中?

您的Tomcat安装可能使用另一个JVM。您需要检查您的安装。检查JAVA_HOME和JRE_HOME指向的位置

JVM不使用Windows可信证书颁发机构


您必须使用keytool在每台服务器上导入公司的可信企业授权证书,但不需要生成任何证书。

谢谢。对于其他偶然发现这一点的人,以下是我如何导入的: