java - 如何将certificate_authorities添加到TLSv1.3中的CertificateRequest消息中

标签 java jsse mutual-authentication tls1.3

我正在使用 TLS 1.3 设置相互身份验证,使用 Spring Boot 服务器和curl 客户端进行测试。我的信任库包含两个已正确加载的证书链 - 事实上,相互身份验证在此测试设置中有效。

但是,基于RFC8446我正在尝试获取 SSL 握手中的 CertificateRequest 消息以包含 certificate_authorities 扩展。

日志记录 (-Djavax.net.debug=all) 显示来自服务器的证书请求消息,不含 certificate_authorities

javax.net.ssl|DEBUG|13|https-jsse-nio-8443-exec-2|2020-02-17 14:24:15.419 CET|CertificateRequest.java:864|Produced CertificateRequest message (
"CertificateRequest": {
  "certificate_request_context": "",
  "extensions": [
    "signature_algorithms (13)": {
      "signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, ecdsa_sha1, rsa_pkcs1_sha1]
    },
    "signature_algorithms_cert (50)": {
      "signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, ecdsa_sha1, rsa_pkcs1_sha1]
    }
  ]
}
)

此扩展是可选的,可以在 CertificateRequest 中发送,但我想将其包含在此消息中,以便真实的客户端设备能够基于此将正确的证书发送到服务器。

最佳答案

在研究这个问题时,我遇到了JDK-8206925其中指出

The current TLS 1.3 implementation does not support this function [...]

所以显然这只是 java(或者至少是我使用的 openJDK java)的一个开放问题。

我很高兴被证明是错误的..

关于java - 如何将certificate_authorities添加到TLSv1.3中的CertificateRequest消息中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60265908/

相关文章:

Java运行速度变慢

java - 没有catch的嵌套try if有什么用吗?

java 安全客户端套接字身份验证

java - 如何从 Radiogroup 获取值(value)并更改数据库

Java 5 - 检查网络接口(interface)是否已启动并正在运行。

spring - MQ SSL 错误,协议(protocol)被禁用或密码套件不合适

Tomcat + SNI + 相互认证

ssl - TLS 相互认证 : null cert chain (C client -> Java server) unless cafile points to same file as cert

java - 与 Java 的相互认证(带有客户端证书 PFX 文件)并且无法访问环境