java - Jetty Mutual TLS 身份验证未找到客户端证书

标签 java ssl jetty

我有一个在 jetty 服务器上运行的客户端实例。我加载了自己的 CA 证书并在服务器和客户端上工作。当我在握手期间发送证书请求时,我必须为客户端证书指定完整的颁发者 DN,否则客户端无法找到所需的证书。但我只想在请求中使用 CA 的 CN。

如果我发送

*** CertificateRequest
Cert Types: ECDSA
Supported Signature Algorithms: SHA256withECDSA
Cert Authorities:
<C=IT, O=ORGNAME, OU=OUNAME, CN=TEST_CA>

服务器发送正确的证书并且认证成功,但是我只想指定我想要的CA的CN。即

*** CertificateRequest
Cert Types: ECDSA
Supported Signature Algorithms: SHA256withECDSA
Cert Authorities:
<CN=TEST_CA>

使用上述请求,服务器无法找到有效的客户端证书并继续发送空证书链并且身份验证失败

最佳答案

在深入研究 TLS RFC 5246 之后,规范说你需要提供专有名称,而我试图提供一个相对专有名称(即只有一个字段)DN vs RDN

根据 RFC,我想做的事情似乎是不可能的。希望它能帮助遇到此问题的人。

关于java - Jetty Mutual TLS 身份验证未找到客户端证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51078097/

相关文章:

java - 如何为 JTable 中的特定列编写焦点获得事件?

java - 来自另一个程序的 Ctrl+C 按键监听器

java - Assert 语句中的正则表达式比较

grails - 为什么 Jetty 寻找 JSP 而不是 GSP?

java - SparkJava网站动态更新

java - 打印出一个数组列表

php - 使用 SSL 证书验证 Web 浏览器

asp.net-mvc - ASP.NET MVC RequireHttps 仅在生产中

ssl - 如何让 gRPC 客户端与不同机器上的 gRPC 服务器通信?两者都在 Asp Net Core 3.0 中。可能的 SSL 问题

clojure - 如何使用jetty/ring向ipad提供视频文件