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

使用. pfx证书从Apache Tomcat 8调用RESTFul API

殷宇
2023-03-14

我需要一个安装的帮助。tomcat 8上的pfx证书。

我已经安装了一个。通过创建jks,在jvm上获得pfx证书。我已经在cacert中添加了一个证书

keytool-import-alias 192.168.56.100-keystore“C:\Program Files\Java\jdk1.8.0\u 91\jre\lib\security\cacerts”-trustcacerts-C:\EBCM\u Client\u TEST文件。pfx

我已经在tomcat 8上部署了我的服务器的战争,并且在端口8444上配置了连接器:

当我试图将HTTPS API从服务器调用到其他服务器时,在日志中我收到以下错误:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

我已经配置了服务器。tomcat安装的xml

<Connector port="8444" 
maxHttpHeaderSize="8192" 
maxThreads="150" 
minSpareThreads="25" 
maxSpareThreads="75" 
enableLookups="false" 
disableUploadTimeout="true" 
acceptCount="100" 
scheme="https" 
secure="true" 
SSLEnabled="true" 
clientAuth="true" 
sslProtocol="SSL/TLS" 
keystoreFile="C:/EBCM_Client_TEST.pfx" keystorePass="allianzebcm" keystoreType="PKCS12"/>

在java中,为了创建自定义SSL上下文,我使用

System.setProperty("javax.net.debug", "all");
System.setProperty("javax.net.ssl.trustStore", "C:/clientcert.jk");
System.setProperty("javax.net.ssl.trustStorePassword", "allianzebcm");
System.setProperty("javax.net.ssl.trustStoreType", "JKS");

//my certificate and password
System.setProperty("javax.net.ssl.keyStore", "C:/EBCM_Client_TEST.pfx");
System.setProperty("javax.net.ssl.keyStorePassword", "allianzebcm");
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");

您知道如何在tomcat上为HTTPS客户端身份验证配置证书pfx吗?

谢谢

共有1个答案

司徒正信
2023-03-14

问题是Connector ofserver.xml上的端口

错误配置

<Connector  port="8444" 

正确的配置

<Connector  port="8443" 

现在我可以使用pfx证书调用REST API了。谢谢

 类似资料:
  • 问题内容: 我基本上需要确保对这项服务的要求。 已经为我提供了一个测试客户端和两个文件,以及,但是我不知道如何使用它们:我了解X509Certificate2类以某种方式涉及。 执行测试客户端的命令行如下: 它可以正常工作,因此我既可以看到服务,也应该正确配置服务本身。 我的C#客户端(针对.NET 2.0)使用普通的Web参考来执行请求: 服务器设置应正确设置。 我摸索了这些方法,但是我无法给出

  • 我在java和cxf中有应用程序,它通过客户端证书连接到Web服务。 我有WebService所有者的证书 证书。p12 证书。pem 证书。crt 受信任的核证机关 根癌 我无法直接将此p12证书转换为java要求的工作jks密钥库。 我是这样做的: 但是这个jks不工作,我得到HTTP响应403:禁止使用这个certificate1.jks 但是,如果我将此p12(pfx)证书导入Intern

  • 问题内容: 我在java和cxf中有一个用客户端证书连接到WebServices的应用程序。 我从WebService所有者那里获得了证书 证书 证书 certificate.crt Trusted_ca.cer root_ca.cer 我直接将这个p12证书转换为java要求的有效jks密钥库时遇到问题。 我这样做: 但是此jks不起作用,使用此证书时我收到HTTP响应‘403:Forbidde

  • <?php $http = HttpRequest::newSession(); $response = $http->sslCert('证书路径', 'pem') // 支持PEM、DER和ENG证书 ->get('https://www.baidu.com/'); $content = $response->body(); // 网页源码

  • 过去,我一直在通过导出带有密码的PFX证书来制作安全的TcpListener,但我想知道是否可以跳过这一步。 我没有使用商业SSL证书,并且有一个根CA,用于颁发服务器证书。在C#中托管TcpListener时,这些服务器证书需要额外的步骤(我想是因为没有使用CSR)。。。但是如果我有私钥和OpenSSL生成/使用的证书呢。 这很好,但是我必须发出openssl命令,从证书和私钥生成pfx文件,然

  • 我正在努力做一些基本的事情,但我的头脑还没有完全清醒过来。我有一个spring boot应用程序,它应该公开一个rest url。 我是这样做的: 正如您所见,它使用的是另一个服务,我正试图用一个外部客户机实现该服务: 界面看起来像: 当MdmhClient在调用: 我知道要解决这个问题,我需要将证书导入jre。我正在运行Intellij IDE,并将项目的jdk路径设置为: 我还通过firefo