使用带有特殊字符的DN的Tomcat客户端证书身份验证
当根据数据库检查客户端证书DN时,我试图在tomcat服务器上设置客户端身份验证,但我有一个问题使用带有特殊字符的DN的Tomcat客户端证书身份验证,tomcat,authentication,ssl,special-characters,client-certificates,Tomcat,Authentication,Ssl,Special Characters,Client Certificates,当根据数据库检查客户端证书DN时,我试图在tomcat服务器上设置客户端身份验证,但我有一个问题 设置了双向身份验证,始终需要客户端证书 已为web应用程序设置客户端证书身份验证 根据oracle DB检查证书中的DN 我们的部分客户有问题。当客户端的名称(和证书)中没有特殊字符时,就不会出现问题,并且允许客户端访问web应用程序。 当客户机的名字中有特殊字符时(ěšřžýáíé),tomcat不会将DN与数据库中的记录进行匹配。我为身份验证设置了登录,有一个示例: 数据库中的DN(EMAIL=
ěšřžýáíé
),tomcat不会将DN与数据库中的记录进行匹配。我为身份验证设置了登录,有一个示例:
数据库中的DN(EMAIL=tomas)。kanak@xxx.cz,CN=TomášKaňak
,…)
DN,它与DB中的一个进行比较(我从tomcat日志中得到这个值)(EMAIL=tomas)。kanak@xxx.cz,CN=TomÃÅKnÅak
,…)
我试图将DN从日志放到数据库中,但没有成功
是否有任何方法可以使用特殊字符对客户端的证书进行身份验证
谢谢。您确定公共证书可以吗?似乎您的链中的某些点没有正确地将字节转换为字符。我的证书是用openssl制作的。也许这就是问题所在。我创建了CA证书,然后签署了服务器和客户端证书。我可以强制openssl使用不同的代码页来解决我的问题吗?你认为呢?我没有说OpenSSL是问题所在。我只是说你的链条上有问题。如果您能够从公共证书转储字节,您将看到它们是否正确编码。我已经创建了新的CA/服务器/客户端证书,现在看起来一切正常。我真的不明白为什么,怎么可能。非常感谢。