默认情况下,自签名证书和CN中带有通配符的证书是否在Java中被阻止?
我正在构建一个JAX-WS客户端,它连接到一个服务器,该服务器使用CN中带有通配符的自签名证书。证书的主题如下所示:默认情况下,自签名证书和CN中带有通配符的证书是否在Java中被阻止?,java,ssl,https,Java,Ssl,Https,我正在构建一个JAX-WS客户端,它连接到一个服务器,该服务器使用CN中带有通配符的自签名证书。证书的主题如下所示: "CN=*.mylocation.mycompany.corp, O=MyCompany, C=MyCountry" 因为服务器端有自签名证书,所以我的JAX-WS客户机只能与接受所有证书的am显式信任管理器一起工作。如本文所述 我经常遇到诸如Sun的JSSE不支持通配符之类的语句,例如在对的回答中 我找不到oracle关于自签名/通配符证书被阻止或支持上述声明的任何官方文档
"CN=*.mylocation.mycompany.corp, O=MyCompany, C=MyCountry"
因为服务器端有自签名证书,所以我的JAX-WS客户机只能与接受所有证书的am显式信任管理器一起工作。如本文所述
我经常遇到诸如Sun的JSSE不支持通配符之类的语句,例如在对的回答中
我找不到oracle关于自签名/通配符证书被阻止或支持上述声明的任何官方文档
这是真的吗?有关于这一点的官方文件吗?似乎有两个答案在回答您的问题:
谢谢,我在代码中做了与这些问题的答案完全相同的事情。但我所要寻找的是oracle的某种官方文档,其中说自签名证书和通配符证书在Java中被deault阻止。关于自签名,不需要官方文档:Java验证证书,而自签名证书无法验证,因为它没有可信的颁发者此证书位于密钥存储区中。因此,自签名证书不会被阻止,只是验证失败。如果要在密钥存储中导入证书,它应该可以工作。即使在密钥存储中导入证书,您仍然需要以编程方式设置一个接受所有证书的显式信任管理器。我说的对吗?不,一旦您将证书导入到cacerts jre/lib/security/cacerts中,您就不需要通过编程设置信任管理器,但您必须设置指向主机的CN属性或添加SAN扩展以允许主机/IP,否则您将获得主机名验证异常。