在开发 Java Web 服务客户端期间,我遇到了一个问题。 Web 服务的身份验证使用客户端证书、用户名和密码。我从网络服务背后的公司收到的客户端证书位于.cer
格式。当我使用文本编辑器检查该文件时,它具有以下内容:
-----BEGIN CERTIFICATE-----
[Some base64 encoded data]
-----END CERTIFICATE-----
我可以将此文件作为证书导入到 Internet Explorer 中(无需输入密码!)并使用它对 Web 服务进行身份验证。
我能够通过首先剥离第一行和最后一行、转换为 unix 换行符并运行 base64 解码来将此证书导入到密钥库中。生成的文件可以导入到密钥库中(使用keytool
命令)。当我列出密钥库中的条目时,该条目的类型为trustedCertEntry
。由于此条目类型 (?),我无法使用此证书通过 Web 服务进行身份验证。我开始认为提供的证书是用于身份验证的公共证书......
我发现的解决方法是在 IE 中导入证书并将其导出为.pfx
文件。该文件可以作为密钥库加载,并可用于通过 Web 服务进行身份验证。但是,我不能指望我的客户每次收到新证书时都执行这些步骤。所以我想加载.cer
文件直接写入Java。有什么想法吗?
附加信息:网络服务背后的公司告诉我,应该向稍后导入证书的 PC 和用户请求证书(使用 IE 和网站)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)