2013-02-14 153 views
1

有一个在下面的链接一个很大的问题和答案:创建代码签名证书为.NET

How do I create a self-signed certificate for code signing on Windows?

我有点困惑列出的两个程序((一)创建一个自签署认证机构和(b)创建代码签名(SPC)证书)。我们做一个,然后做b或者是一个吗?

创建自签名的证书颁发机构(CA)

makecert -r -pe -n “CN =我的CA” -ss CA -sr CurrentUser -a SHA256 -cy权威-sky签名 - SV MyCA.pvk MyCA.cer

创建代码签名(SPC)证书

makecert -pe -n “CN =我的SPC” -a SHA256 -Cy结束 -sky签名 -IC MyCA.cer -iv MyCA.p VK -sv MySPC.pvk MySPC.cer

回答

1

重要声明:这当然假定这些证书仅用于内部使用;如果你想要一个可以被客户信任的代码签名证书,你可以跳过步骤(a)并且支付一个实际的CA(其证书已经被你的客户信任的证书)来为你签署你的代码签名证书。

您先创建一个(自签名)CA证书(a),然后用它签署您的代码签名证书(b)。

可以跳过步骤(a)和刚刚创建自签名代码签名证书来代替,但也有创造自己的CA证书的优势:

  • 这更加紧密地反映了您可能会遇到“野外”的设置,其中代码签名证书(或几乎任何其他类型)将由单独的可信颁发证书签名。
  • 如果您生成多个证书并使用您的CA证书进行签名,则只需要将一个证书(CA)安装为“受信任的根”,并且可以更好地控制对其的访问。这限制了您的证书必须被撤销时您需要做的误用范围和损害控制。
0

你为什么不试试呢?或阅读documentation

第一个命令生成证书颁发机构,其他证书链接到该证书颁发机构。这是所谓的信任链,所以如果您信任CA证书,则您信任由此构建的所有证书。

第二个命令根据CA证书生成证书。