具有嵌入式 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 上进行部署