我正在按照本教程学习如何在wildfly中设置相互SSL: https://github.com/wildfly/quickstart/tree/master/helloworld-mutual-ssl-secured
使用键工具键生成,一切正常。然后,当我尝试使用通过 KeyStore 资源管理器生成的客户端证书时,当我尝试访问受此安全域保护的应用程序时,我得到 403(未经授权(。
我试图找到这两个工具生成的证书或密钥的差异,但找不到。我错过了什么吗?
更新
似乎keytool为CN字段生成的ID号与密钥库资源管理器不同。我从日志中收到解码器找不到标识符 2.5.4.3 的消息:
X500 principal [CN=example, OU=asdf, O=asdf, L=asdf, ST=asdf, C=rs] was not decoded - no values of attribute [2.5.4.3]
我在这里找到了答案:https://issues.jboss.org/browse/ELY-1587
所以,我是对的,KeyStore 资源管理器生成 UTF8String 类型的 CN 字段,尽管 WF 13 文档声称他们的解码器支持它,但它不支持。
他们在 WF 14 中修复了此错误。
我遇到了类似的问题:我的客户端证书在Firefox中不起作用,但在Chrome和IE中不起作用。Firefox 的问题在于证书的字符串是用UTF8String
编码的。使用PrintableString
是解决方案重新创建它们,请参阅此处:
https://superuser.com/questions/1569086/firefox-does-not-offer-client-certificate-ssl-error-handshake-failure-alert