gpt4 book ai didi

java - 为什么在 SSL 连接期间不发送客户端证书? CXF 2.7.9

转载 作者:太空宇宙 更新时间:2023-11-03 14:06:25 25 4
gpt4 key购买 nike

背景

我的应用程序部署在 jboss 5 中,与需要 MASSL 的 Web 服务服务器通信。 (2 路 SSL)

问题

通过查看 SSL 连接的日志,即使在开始时加载了客户端证书也没有发送。

日志详细信息如下,客户端证书应该在服务器问候完成后发送

[编辑] 根据回复添加了更多详细信息

  1. 在日志中添加CertificateRequest

  2. Cient 证书实际匹配上述请求 - (a) 算法是 RSA,(b) 由请求中指定的 CA 签名

日志:

2016-11-25 09:32:38,434 INFO  [STDOUT] (http-0.0.0.0-8080-4) keyStore is : /XX/XX/my.jks
2016-11-25 09:32:38,434 INFO [STDOUT] (http-0.0.0.0-8080-4) keyStore type is : jks
2016-11-25 09:32:38,434 INFO [STDOUT] (http-0.0.0.0-8080-4) keyStore provider is :
2016-11-25 09:32:38,434 INFO [STDOUT] (http-0.0.0.0-8080-4) init keystore
2016-11-25 09:32:38,440 INFO [STDOUT] (http-0.0.0.0-8080-4) init keymanager of type SunX509
2016-11-25 12:00:04,420 INFO [STDOUT] (http-0.0.0.0-8080-4) ***
2016-11-25 12:00:04,421 INFO [STDOUT] (http-0.0.0.0-8080-4) found key for : mykey
2016-11-25 12:00:04,432 INFO [STDOUT] (http-0.0.0.0-8080-4) chain [0] = [
[
Version: V3
Subject: CN=xx.xxx.xxx.com, OU=xxxxxxxx, O=xxxx, L=xxxx, ST=xxx, C=xx
Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5

Issuer: CN=abc AD Object CA1, DC=core, DC=dir, DC=def, DC=com

...

2016-11-25 12:00:05,520 INFO [STDOUT] (http-0.0.0.0-8080-4) *** CertificateRequest
2016-11-25 12:00:05,521 INFO [STDOUT] (http-0.0.0.0-8080-4) Cert Types:
2016-11-25 12:00:05,521 INFO [STDOUT] (http-0.0.0.0-8080-4) RSA
2016-11-25 12:00:05,521 INFO [STDOUT] (http-0.0.0.0-8080-4) Cert Authorities:
2016-11-25 12:00:05,521 INFO [STDOUT] (http-0.0.0.0-8080-4) <CN=abc AD Object CA1, DC=core, DC=dir, DC=def, DC=com>
2016-11-25 12:00:05,521 INFO [STDOUT] (http-0.0.0.0-8080-4) <CN=abc Policy CA1, O=gh Corporation Limited>
2016-11-25 12:00:05,522 INFO [STDOUT] (http-0.0.0.0-8080-4) <CN=abc Root CA>

2016-11-25 09:32:39,475 INFO [STDOUT] (http-0.0.0.0-8080-4) *** ServerHelloDone
2016-11-25 09:32:39,475 INFO [STDOUT] (http-0.0.0.0-8080-4) *** Certificate chain
2016-11-25 09:32:39,475 INFO [STDOUT] (http-0.0.0.0-8080-4) ***
2016-11-25 09:32:39,482 INFO [STDOUT] (http-0.0.0.0-8080-4) *** ClientKeyExchange, RSA PreMasterSecret, TLSv1
2016-11-25 09:32:39,482 INFO [STDOUT] (http-0.0.0.0-8080-4) http-0.0.0.0-8080-4, WRITE: TLSv1 Handshake, length = 269
2016-11-25 09:32:39,482 INFO [STDOUT] (http-0.0.0.0-8080-4) SESSION KEYGEN:
2016-11-25 09:32:39,483 INFO [STDOUT] (http-0.0.0.0-8080-4) PreMaster Secret:

问题

我在这里遗漏了什么吗?

最佳答案

client cert is supposed to be sent after server hello is done.

不,不是。只有在以下情况下才应该发送:

  • 服务器已通过 CertificateRequest 消息请求它
  • 客户端拥有由服务器指定的 CA 之一签名的证书
  • 客户端拥有与服务器指定的证书类型相匹配的证书。

您的问题中没有证据表明所有这些条件都适用。

关于java - 为什么在 SSL 连接期间不发送客户端证书? CXF 2.7.9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40799342/

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