以前直向服务器以http请求得到数据,现在想向https的服务器请求得到数据,并且在客户端安装他们的证书。我已经装好了证书,进行IE登陆https服务器,显示正常。但是使用程序出现了如下错误:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
后来我上网查了一下,发现好像需要将证书导入到%JAVA_HOME%\lib\security\cacerts这个文件中才行,可是从来没弄过,希望大家能帮我写出详细步骤,和发一下成功的例子。先谢谢各位了!
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
后来我上网查了一下,发现好像需要将证书导入到%JAVA_HOME%\lib\security\cacerts这个文件中才行,可是从来没弄过,希望大家能帮我写出详细步骤,和发一下成功的例子。先谢谢各位了!
因为证书的密钥导出不了*.cer中,在导入cacerts 中 密钥为空,Https服务器通过不了
1.
打开“证书 - 当前用户”。
2.
执行下列操作之一:• 如果处于“逻辑证书存储”查看模式,请在控制台树中,单击“证书”。位置
• 证书 - 当前用户/逻辑存储区/证书
• 如果处于“证书目的”查看模式,请在控制台树中,单击“目的”。位置
• 证书 - 当前用户/目的
3.
在详细信息窗格中,单击要导出的证书。
4.
在“操作”菜单上,指向“所有任务”,然后单击“导出”。
5.
在“证书导出向导”中,单击“是,导出私钥”。(只有将私钥标记为可导出且可以访问它时才会显示该选项。)
6.
在“导出文件格式”下,执行以下一种或全部操作,然后单击“下一步”。• 要将所有证书包括在证书路径内,请选中“如果可能,包含证书路径中的所有证书”复选框。
• 要启用严密保护,请选中“启用严密保护(要求 IE 5.0 或 NT 4.0 SP4 或更高版本)”复选框。
• 要在导出成功之后删除私钥,请选中“如果导出成功,删除私钥”复选框。
7.
在“密码”中,键入相关的密码,以便对要导出的私钥进行加密。在“确认密码”中,再次键入相同的密码,然后单击“下一步”。
8.
在“文件名”中,键入存储已导出的证书和私钥的 PKCS #12 文件的文件名和路径,单击“下一步”,然后单击“完成”。
注意• 步骤 1 中的链接将为当前用户打开证书。要为服务帐户或计算机帐户打开“证书”,请按照以下说明进行操作。
• 要打开“证书”,请依次单击“开始”、“运行”,再键入“mmc”,然后单击“确定”。单击“文件”菜单上的“打开”,再单击要打开的控制台,然后单击“打开”。在控制台树中,单击“证书”。
• 如果尚未创建包含“证书”的 MMC 控制台,请参阅“相关主题”。
• 如果证书是由 Windows Server 2003 证书颁发机构颁发的,则该证书的私钥仅是可导出的,前提是其证书申请必须通过已选中“密钥标记为可导出的”复选框的“高级证书申请颁发机构网页”提交,或者该证书用于加密文件系统 (EFS) 或 EFS 恢复。
• 导出证书及其相关私钥时,默认情况下,在“证书导出向导”中将启用加强保护(也称为“迭代次数”)。严密保护和旧版本的程序不兼容,因此如果要在任何比 Microsoft Internet Explorer 5 更早的浏览器中使用私钥,则需要清除“启用严密保护”选项。
• 在“证书导出向导”结束时,除了新建的文件外,证书还将保留在证书存储区中。如果要从证书存储区中删除证书,则需要将其删除。