在开发Java WebService客户端期间,我遇到了一个问题.Web服务的身份验证使用客户端证书、用户名和密码.我从Web服务背后的公司那里收到的客户端证书是.cer
格式的.当我使用文本编辑器判断该文件时,它有以下内容:
-----BEGIN CERTIFICATE-----
[Some base64 encoded data]
-----END CERTIFICATE-----
我可以将此文件作为证书导入Internet Explorer(无需输入密码!)并使用它向Web服务进行身份验证.
通过首先剥离第一行和最后一行,转换为Unix换行符并运行base64-decode,我能够将该证书导入到密钥库中.可以将生成的文件导入密钥库(使用keytool
命令).当我列出密钥库中的条目时,此条目的类型为trustedCertEntry
.由于此条目类型(?)我无法使用此证书向Web服务进行身份验证.我开始认为所提供的证书是用于身份验证的公共证书……
我发现的一个解决办法是在IE中导入证书,然后将其导出为.pfx
文件.此文件可以作为密钥库加载,并可用于向Web服务进行身份验证.但是,我不能期望我的客户在每次收到新证书时都执行这些步骤.所以我想将.cer
文件直接加载到Java中.有什么 idea 吗?
附加信息:支持Web服务的公司告诉我,应该向PC和稍后导入证书的用户请求证书(使用IE和网站).