首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当应用程序充当客户端时,将证书放在Tomcat中的哪里?

当应用程序充当客户端时,将证书放在Tomcat中的哪里?
EN

Server Fault用户
提问于 2017-04-18 19:38:14
回答 1查看 12.3K关注 0票数 0

首先,我的Tomcat8配置为具有连接器xml文件中链接的有效证书的https。

就像这样:

代码语言:javascript
复制
    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           SSLEnabled="true" maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" enableLookups="false" keyAlias="https"
           keystoreFile="C:\Program Files\Apache Software Foundation\Tomcat 8.0\conf\keystore.jks"
           keystorePass="changeit"/>

但我需要我的web应用程序作为客户端连接到第三方数据提供者与有效的证书。我把这张额外的证书放在哪里?当我为连接器输入keystore时,"https“证书不是第一个证书,它破坏了一些东西。我也许可以用连接器中的keyAlias来解决这个问题.

但是..。连接器密钥存储应用程序是否广泛?这种设置的最佳选择是什么?

这个文章很大程度上概括了我的选择,选择哪一个?最好的选择似乎是将带两个证书的keystore传递给JVM,但是如何告诉连接器使用哪个证书呢?

编辑:

根据建议,我对连接器和密钥存储库进行了如下编辑:

现在我得到了:

代码语言:javascript
复制
Wrapped 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
Cause: sun.security.validator.ValidatorException: PKIX path building 
failed: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target]
EN

回答 1

Server Fault用户

回答已采纳

发布于 2018-01-19 10:20:08

最后,我创建了一个密钥存储库(windows上有密钥库资源管理器),其中包含所有必要的证书(密钥)和别名。然后,我将keystore和trustore填写为java启动参数:

代码语言:javascript
复制
  -Djavax.net.ssl.keyStore=%KEYSTORE% 
  -Djavax.net.ssl.keyStorePassword=changeme
  -Djavax.net.ssl.trustStore=%TRUSTSTORE% 
  -Djavax.net.ssl.trustStorePassword=changeme

在tomcat连接器中使用相同的密钥存储库,并为HTTPS提供适当的keyAlias。

在调试时,启用-Djava.net.debug=ssl也非常有用。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/845141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档