首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >7.0.100+中Tomcat中的客户端证书认证问题

7.0.100+中Tomcat中的客户端证书认证问题
EN

Stack Overflow用户
提问于 2020-11-19 19:48:27
回答 1查看 178关注 0票数 1

我们在我们的项目中有客户的证书认证

然而,由于某种原因,在发布100 Tomcat之后,似乎什么都不能工作

当我们通过nginx代理应用程序时,我们要么得到400 HTTP响应,要么证书头为空(如果我们设置了rejectIllegalHeader="false"

示例(标头的值),name - ssl_client_cert

代码语言:javascript
复制
"-----BEGIN CERTIFICATE-----\x0A\x09MIIFXDCCA0SgAwIBAgIBBDANBgkqhkiG9w0BAQsFADBHMQ...
\x0A\x09-----END CERTIFICATE-----"

ssl_client_raw_cert

代码语言:javascript
复制
"-----BEGIN CERTIFICATE-----\x0AMIIFXDCCA0SgAwIBAgIBBDANBgkqhkiG9w0BAQsFADBHMQsw ...
y2EmDsw=\x0A-----END CERTIFICATE-----\x0A"

我想这就是罪魁祸首

https://github.com/apache/tomcat/commit/ae8c82eff96990878e79691819ae941538ee62fd#diff-d4454b2c33deae44a2c2f5cd354aa3ca70c6a268e78c4fd5e1f76fcebc0181ba

在第100个版本之前,一切运行正常

为了绕过这一点,我们改用ssl_client_escaped_cert

代码语言:javascript
复制
"-----BEGIN%20CERTIFICATE-----%0AMIIFXDCCA0SgAwIBAgIBBDANBgkqhkiG9 ...
qgt0Tzy2EmDsw%3D%0A-----END%20CERTIFICATE-----%0A"

现在,我们必须在Java代码中手动取消转义

代码语言:javascript
复制
 String certificateInfo = URLDecoder.decode(request.getHeader(headerName), "UTF-8");

有没有办法让Tomcat接受100版或更高版本的非转义证书?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-19 23:17:18

不,您无法将Tomcat配置为允许包含0x0A以外的HTTP标头值。这些更改是为了响应CVE-2020-1935

另外,我假设Nginx正在执行客户端身份验证,并将经过验证的客户端证书传递给Tomcat。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64911070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档