我创建了一个自签名证书,但是浏览器告诉我“此CA根证书不受信任。要启用信任,请在受信任的根证书颁发机构存储中安装此证书”。
通过进入IE-> Internet选项->内容->证书-> ect …,我实际上必须导出自签名证书,然后将其导入“受信任的根证书”。仅在证书位于用户计算机中的ROOT存储下之后,IE才会显示任何警告。
这将部署在生产环境中,因此让用户手动执行上述步骤是不可接受的。
如何自动执行此操作?我只希望他们接受并且不具有该“证书错误”,并且在IE中将URL栏设置为“红色”。
我正在使用Tomcat 5.5。我还遵循了与Tomcat SSL How To Tutorial http://tomcat.apache.org/tomcat-5.5-doc/ssl- howto.html中相同的步骤。
提前致谢。
Java 6提供了一个名为SunMSCAPI的密码提供程序,以访问Windows密码库API。该提供程序实现包含所有信任锚证书的密钥库“ Windows- Root”。
可以在此密钥库中插入证书。
KeyStore root = KeyStore.getInstance("Windows-ROOT"); root.load(null); /* certificate must be DER-encoded */ FileInputStream in = new FileInputStream("C:/path/to/root/cert/root.der"); X509Certificate cacert = (X509Certificate)CertificateFactory.getInstance("X.509").generateCertificate(in); root.setCertificateEntry("CACert Root CA", cacert);
如果需要确认,将提示用户。如果该操作被用户取消,则抛出KeyStoreException。
可以在以下位置找到有关提供程序的一些技术说明:http : //download.oracle.com/javase/6/docs/technotes/guides/security/SunProviders.html#SunMSCAPI