繁体   English   中英

Tomcat作为客户端。 Tomcat上的Web应用程序不使用SSL客户端证书

Tomcat as a client. Web application on Tomcat does not use SSL client certificate

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我在Apache Tomcat服务器A上有一个Web应用程序。此Webapp可以连接到在其他地方运行的服务器B。 该服务器B需要使用SSL证书的客户端身份验证。

我要实现的目标是,使服务器A上的此Web应用程序使用SSL客户端证书在服务器B上进行身份验证。

因此,我为Tomcat服务器A提供了一些附加的JAVA_OPTS:

    -Djavax.net.ssl.trustStore=/location/keystore.jks 
    -Djavax.net.ssl.trustStorePassword=changeit 
    -Djavax.net.ssl.keyStore=/locaton/keystore.jks 
    -Djavax.net.ssl.keyStorePassword=changeit 
    -Djavax.net.debug=ssl

现在,此keystore.jks包含三个证书:

  • CA证书
  • 服务器证书(PKCS12)这是服务器A的证书
  • 客户端证书(PKCS12)这是我希望Web应用程序使用的客户端证书。

tomcat / logs / catalina.out给出以下内容:

Client write key:
0000: some hex
Server write key:
0000:some hex
... no IV used for this cipher
*** CertificateVerify
pool-1-thread-2, WRITE: TLSv1 Handshake, length = 134
pool-1-thread-2, WRITE: TLSv1 Change Cipher Spec, length = 1
Finished
verify_data:  { data }

pool-1-thread-2, WRITE: TLSv1 Handshake, length = 32
pool-1-thread-2, READ: TLSv1 Alert, length = 2
pool-1-thread-2, RECV TLSv1 ALERT:  fatal, unsupported_certificate
pool-1-thread-2, called closeSocket()
pool-1-thread-2, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: unsupported_certificate
pool-1-thread-2, called close()

为了证明此密钥库的正确性,我编写了一个微型Java应用程序,该应用程序使用相同的密钥库连接到同一服务器B,并成功协商了客户端证书。

我试图将此客户端证书更改为X509类型,但是即使那样,我仍然遇到错误并且无法通信。

我以为也许我缺少什么? 有人对这种东西有经验吗?

谢谢

1 个回复

这似乎是因为未启用客户端证书的“客户端身份验证”用法。 您可以通过打开证书并在“详细信息”选项卡下的“增强的密钥用法”字段中进行检查来进行验证。 它应该在字段中具有“客户端身份验证”。

1 Tomcat 和 SSL 客户端证书

我想有以下场景: 创建我自己的 CA 创建服务器证书并使用我的 CA 对其进行签名 创建多个客户端证书并使用我的 CA 对其进行签名 接下来,我想对每个提供由我的 CA 签名的证书的客户端进行身份验证。 是否可以在不将每个客户端证书添加到我的 tomcat 密钥库的情况下实现这种场景 ...

2 tomcat发送SSL客户端证书

我正在尝试使用具有密码的SSL证书(PFX文件)进行https rest API调用。 我使用SOAP UI从桌面测试了连接,并且连接正常。 我有一个正在tomcat上运行的Web应用程序,我需要我的tomcat才能为它将进行的所有http / https调用发送此证书。 我不是tomcat的人 ...

3 Tomcat服务器/客户端自签名SSL证书

我有一个运行自签名SSL证书的Apache Tomcat 6.x服务器。 我希望客户端将自己的证书提供给服务器,以便我可以根据用户数据库对它们进行身份验证。 我根据我在网上找到的一个例子来完成所有工作,但是这个例子附带了罐装证书和预构建的JKS数据存储。 我想用自己的证书创建自己的数据存储 ...

5 Tomcat应用程序到具有客户端证书身份验证的WCF服务

我有一个在Tomcat上运行的Java应用程序,该应用程序需要使用需要客户端证书身份验证的WCF服务。 我在客户端配置了密钥库和信任库,并且已经确认请求已发送到IIS,但是我从IIS日志中收到“未经授权”错误消息。 我想知道是否需要任何特定的Tomcat配置才能允许从客户端发送客户端证书? ...

6 具有SSL客户端证书的iPhone应用程序

我正在构建一个需要使用客户端证书通过https访问Web服务的iphone应用程序。 如果我将客户端证书(以pkcs12格式)放入应用程序包中,我就可以将其加载到应用程序中并进行https调用(主要得益于stackoverflow.com)。 但是,我需要一种方法来分发没有任何证书的应用 ...

8 在android应用中配置SSL客户端证书以在Tomcat上的Web服务器中进行客户端身份验证

我在计算机上本地安装了apache服务器并正在运行。 我开始使用SSL服务器证书进行服务器身份验证。 为此,我将服务器密钥库路径添加到tomcat的server.xml文件中,并将服务器证书添加到android应用中SSL上下文的truststore中。 现在,我需要为客户端身份验证配 ...

9 Tomcat 7 ssl客户端验证

我想只为一些有限的用户提供一个webapp。 所以我选择了SSL客户端身份验证。 我是新手,所以对它的了解不多我按照本教程来实现它。 这是我心中的一些问题。 我使用的是基本的自签名SSL。 1)我们可以为我提供的所有客户创建单一客户证书吗? 因此,拥有客户端证书的人可以访问应用程 ...

10 Tomcat + SSL配置+客户端

所以,每个人都说不同的话。 有人使用“ keytool”,有人使用“ openssl”。 有人更喜欢APR Tomcat,有人不喜欢。 我的应用程序是移动应用程序(Android / IOS)的后端,将来还会有浏览器。 我正在使用REST方法。 哪一种是在服务器和客户端之间建立SSL连 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM