1

好的,所以我的应用程序需要与使用客户端证书对用户进行身份验证的第 3 方 Web 应用程序进行交互。(我只需要使用 Web 浏览器控件打开一个窗口,然后导航到该站点)。

供应商向我扔了 6 个 .cer 文件。一个是根,我假设会有 1 个或多个中间证书,以及 1 个或多个客户端证书。不知道哪个是哪个。

这些将是自行颁发的证书,因此我不希望发行者证书默认受信任——我需要将根安装到受信任的发布者中。

所以,我知道我需要将这些证书安装到我的密钥库中,但我不知道哪个证书进入哪个商店。我需要做什么才能弄清楚?

4

2 回答 2

1

如果您正在运行其他一些操作系统,我将假设您正在使用某种 MS Windows 停止阅读这里:-)

要走正确的路,你应该这样做:

根证书 --> 受信任的根证书颁发机构

中级证书 --> 中级证书颁发机构

客户证书 --> 个人。

以我的经验,您无法通过 Windows 导入指南将证书放在正确的商店中,您必须告诉它在哪个商店中放置证书。

要对证书进行排序,您必须对证书进行“链排序”查看所有证书并将它们排序在一个或多个链中。

根 --> 中级 --> 第二个中级 --> 客户端。|----> 另一个中间体 --> 另一个客户端

当您对证书进行排序时,您会查看一个证书以及哪些证书已对其进行了签名。根是自签名的,第一个中间证书由根签名。第二个中间证书由第一个中间证书签名,以此类推。

您的客户端证书应该是唯一具有私钥的证书。

于 2013-05-08T19:48:14.850 回答
0

您只需使用资源管理器双击证书即可打开证书。检查详细信息并将它们安装在 Windows 中。检查他们去哪里。然后单击它们以查看该证书向上的证书链。您可以随时再次删除它们。如果不确定,请使用单独的非关键安装。请注意,证书还包含一个颁发者字符串,它指向用于签署证书的证书/私钥。

请注意,对于客户端证书,您不仅需要证书,还需要私钥。获得这样一对的正常方法是创建一个包含公钥的私钥和证书请求。这是您发送给另一方的。另一方必须确保请求来自您。然后另一方创建属于您的私钥的证书。使用此对,您可以执行客户端身份验证。

执行证书路径验证的另一种方法是使用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
于 2013-05-08T22:27:04.550 回答