好的,所以我的应用程序需要与使用客户端证书对用户进行身份验证的第三方Web应用程序进行交互。 (我只需要打开一个带有Web浏览器控件的窗口,然后导航到该站点)。
供应商向我扔了6个.cer文件。一个将是根,我假设将有一个或多个中间证书,以及一个或多个客户端证书。不知道哪个是哪个。
这些将是自行颁发的证书,因此我不希望默认情况下信任颁发者证书 - 我需要将root用户安装到受信任的发布者。
所以,我知道我需要将这些证书安装到我的密钥库中,但我不知道哪个证书进入了哪个商店。我需要做些什么来解决这个问题?
答案 0 :(得分:1)
如果您正在运行其他操作系统,请假设您正在使用某种类型的MS Windows: - )
要采用正确的方法,你应该这样做:
根证书 - >受信任的根证书颁发机构
中级证书 - >中级证书颁发机构
客户证书 - >个人。
根据我的经验,您不能在Windows导入指南中继,将证书放在正确的商店中,您必须告诉它在哪个商店放置证书。
要对证书进行排序,您必须将证书“链排序” 查看所有证书并在一个或多个链中对它们进行排序。
Root - >中级 - >第二中间体 - >客户。 | ---->另一个中级 - >另一个客户
在对证书进行排序时,您会查看证书以及已签署证书的证书。根是自签名的,第一个中间证书由根签名。第二个中间证书由第一个中间人签署,依此类推。
您的客户端证书应该是唯一拥有私钥的证书。
答案 1 :(得分:0)
您只需使用资源管理器双击证书即可打开证书。检查详细信息并在Windows中安装它们。检查他们去哪里。然后单击它们以从该证书向上查看证书链。您可以随时再次删除它们。如果不确定,请使用单独的非关键安装。请注意,证书还包含 issuer 字符串,该字符串指向用于签署证书的证书/私钥。
请注意,对于客户端证书,您不仅需要证书,还需要私钥。获得这样一对的正常方法是创建包含公钥的私钥和证书请求。这是你发给对方的。另一方必须确保该请求源自您。然后,另一方创建属于您的私钥的证书。使用此对,您可以执行客户端身份验证。
执行证书路径验证的另一种方法是使用openssl verify
命令。请注意,许多证书都是二进制/ DER编码的。如果它们是PEM编码(openssl的主要格式),那么它们看起来像文本。如果不是,它们可能以30
十六进制开头,这意味着它们是DER编码的。在使用openssl verify
命令之前,您需要将这些证书转换为PEM格式。请注意,您可以简单地连接PEM文件以创建一组(CA)证书。
openssl x509 -inform der -in certificate.cer -out certificate.pem
openssl verify -CAfile ca-chain.pem certificate.pem