gpt4 book ai didi

tomcat - 客户端证书未发送到服务器

转载 作者:行者123 更新时间:2023-11-28 23:38:35 24 4
gpt4 key购买 nike

我正在尝试为在 JBoss 4.2.3 上运行的 SOAP 网络服务设置双向 SSL 身份验证。为此,我们创建了一个 CA,其中包含一个根 CA 和两个中间 CA(开发和生产环境)。

然而,尝试使用中间 CA 之一签署的客户端证书测试此设置时,我遇到了问题。

服务器设置有 JVM-s cacerts keystore 中的根 CA,以及 Tomcat 连接器用作信任库的 keystore 中的相关中间 CA。完整的连接器配置如下:

<Connector port="443" address="${jboss.bind.address}"
protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="keystore.p12"
keystorePass="******" keystoreType="PKCS12"
emptySessionParth="true" enableLookups="false" acceptCount="100"
truststoreFile="truststore.jks"
truststorePass="******" truststoreType="JKS"
disableUploadTimeout="true" />

连接 openssl s_client 我可以看到,“可接受的客户端证书 CA 名称”列出了我们的中间 CA。我还在 -cert-key 选项中提供了正确的客户端证书和 key 。但是,据我所知,openssl 输出从未发送过证书。我还尝试将客户端证书、中间和根 CA 连接到一个 PEM 文件中,以呈现整个链,但这也没有帮助。

s_client 命令行如下:

openssl s_client -host localhost -port 443 -cert client_cert.crt -key client_key.key -CApath /etc/ssl/certs/ -debug -state

当我尝试使用 Google Chrome 和安装在 Windows 中的相关证书测试服务时,也观察到了相同的行为。 wireshark 输出看起来相同 - 请求证书,提供正确的可接受的 CA,但浏览器甚至从未给我选择证书,并且将空的客户端证书消息发送回服务器。

所以我的问题是 - 我在这里缺少什么?我假设客户端应该使用可接受的 CA 列表来决定发送哪些证书,但显然有些事情正在做出决定,否则不会发送证书。我再次假设服务器配置正确,因为预期的 CA 是在协商中发送的,但我在客户端缺少什么?

编辑:

应@Bruno 的要求,我还查看了证书的 key 用法。当前使用的客户端证书在使用 openssl x509 -noout -text -in client.cer

打印时提供以下信息
        X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Key Usage: critical
.....
X509v3 Extended Key Usage:
TLS Web Client Authentication

现在查看 - 空的 Key Usage 字段似乎是罪魁祸首。应该有什么值?我似乎想不出一个好的短语来谷歌搜索此类信息。那时我可能需要看看 CA 管理软件。

最佳答案

感谢@Bruno 的提示,我调查了客户端证书的 key 使用部分。事实证明,我们正在生成具有空 key 用法属性的证书。

我现在已经配置了我们的 CA 管理软件来生成具有以下 key 使用/扩展 key 使用属性的证书。我确实承认我不完全理解它们中的每一个的作用,但它使系统现在可以正常工作。希望我没有在此处添加任何潜在危险。

        X509v3 Key Usage: critical
Digital Signature, Non Repudiation, Key Encipherment, Data Encipherment, Key Agreement
X509v3 Extended Key Usage:
TLS Web Client Authentication

在谷歌搜索有关 key 使用位的信息后,我还偶然发现了 this question这在一定程度上解释了事情。

关于tomcat - 客户端证书未发送到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22326452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com