You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置mTLS遇协议协商失败及无出站CERT verify问题求助

关于Spring Boot mTLS配置中curl握手缺少出站CERT verify记录的问题

问题描述

  • 配置Spring Boot mTLS后,执行以下curl命令:
    curl -v -k --cert-type P12 --tlsv1.2 --cert ./src/main/resources/ssl/client_keystore.p12:changeit https://localhost:8443/test
    
  • 输出中仅显示入站CERT verify记录,但预期应存在入站、出站两条该记录
  • 服务器初始application.yml配置:
    server:
      ssl:
        key-store: classpath:ssl/keystore.p12
        key-store-password: changeit
        key-store-type: PKCS12
        key-alias: mykey
        key-password: changeit
        trust-store: classpath:ssl/truststore.p12
        trust-store-password: changeit
        trust-store-type: PKCS12
        client-auth: need
        enabled-protocols:
          - TLSv1.2
          - TLSv1.3
      port: 8443
    
  • 当将enabled-protocols改为仅包含TLSv1.2后,curl输出仅显示SSL连接信息,仍无出站CERT verify记录

问题分析与解决方案

1. TLS版本协商问题

TLS 1.3简化了握手流程,将客户端证书验证(CERT verify)整合进Finished消息,不会单独打印出站CERT verify日志。即使curl指定--tlsv1.2,若服务器同时支持TLS1.3,curl会优先协商使用TLS1.3,导致看不到预期日志。

解决:强制curl仅使用TLS1.2
修改curl命令:

curl -v -k --cert-type P12 --tls-max 1.2 --cert ./src/main/resources/ssl/client_keystore.p12:changeit https://localhost:8443/test

通过--tls-max 1.2限制curl的最高TLS版本为1.2,避免自动升级到TLS1.3。

2. 客户端证书与服务器信任链验证

  • 检查客户端keystore有效性:
    执行以下命令确认客户端keystore包含有效证书:

    keytool -list -v -keystore ./src/main/resources/ssl/client_keystore.p12 -storepass changeit
    

    需确认存在客户端证书条目,且证书信息符合服务器信任要求。

  • 检查服务器truststore信任关系:
    执行以下命令确认服务器truststore已导入客户端证书(或其CA证书):

    keytool -list -v -keystore ./src/main/resources/ssl/truststore.p12 -storepass changeit
    

    确保客户端证书已被服务器信任,否则客户端证书会被拒绝,不会触发完整的验证流程。

3. 客户端认证配置生效验证

确认client-auth: need配置已生效,该配置强制要求客户端提供证书,否则拒绝连接。可通过无证书访问测试:

curl -v -k https://localhost:8443/test

若返回400 Bad Request或握手失败,说明客户端认证配置正常。

验证步骤

  1. 使用修改后的curl命令(强制TLS1.2)重新执行,查看是否出现两条CERT verify记录
  2. 验证客户端keystore和服务器truststore的证书配置是否正确
  3. 通过无证书访问确认客户端认证配置生效

内容的提问来源于stack exchange,提问作者Jackie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 10:52:05