具有嵌入式 Tomcat 和通用名称 (CN) 的双向 TLS

Posted

技术标签:

【中文标题】具有嵌入式 Tomcat 和通用名称 (CN) 的双向 TLS【英文标题】:Mutual TLS with embedded Tomcat and Common Name (CN) 【发布时间】:2020-06-23 16:04:10 【问题描述】:

我们使用嵌入式 Tomcat 运行 REST 服务。我们的应用程序需要 Mutual TLS 通过从客户端证书中提取 CN 并验证一组授权用户的权限来进行身份验证和授权。

这适用于反向代理,例如 nginx 使用提取 CN 并将其传递到 HTTP 标头中的配置:

proxy_set_header X-SSL-Client-CN $ssl_client_s_dn_cn;

相反,在嵌入式 Tomcat 中是否可以提取 CN 而不是使用反向代理?

【问题讨论】:

到目前为止你尝试了什么? 我们还没有找到在没有反向代理的情况下在 Tomcat 中执行此操作的方法 【参考方案1】:

..作为 Tomcat 提交者,我会说 RTFM。 SSLValve 将读取您客户端的 Base 64 PEM 公共证书,注入 X509Certificate,然后您的 Realm 可以提供 X509UsernameRetriever 以读出您需要的内容。

【讨论】:

以上是关于具有嵌入式 Tomcat 和通用名称 (CN) 的双向 TLS的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Boot 嵌入式 tomcat 中设置 HTTPS SSL 密码套件首选项

使用 Maven 在具有数据源的嵌入式 Tomcat 上进行部署

tomcat部署项目如何去掉项目名称?急急急,在线等

SpringBoot配置嵌入式的Servlet

在具有 Java 8 的嵌入式 Tomcat 8.5 上启用 TLS 握手的可观察性(日志记录/指标)

SpringBoot----嵌入式Servelt容器