使用带有特殊字符的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=

当根据数据库检查客户端证书DN时,我试图在tomcat服务器上设置客户端身份验证,但我有一个问题

  • 设置了双向身份验证,始终需要客户端证书
  • 已为web应用程序设置客户端证书身份验证
  • 根据oracle DB检查证书中的DN
  • 我们的部分客户有问题。当客户端的名称(和证书)中没有特殊字符时,就不会出现问题,并且允许客户端访问web应用程序。 当客户机的名字中有特殊字符时(
    ěšřžýáíé
    ),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/服务器/客户端证书,现在看起来一切正常。我真的不明白为什么,怎么可能。非常感谢。