为.NET创建代码签名证书

时间:2013-02-14 12:28:46

标签: .net security certificate clickonce

以下链接有一个很好的问题和答案:

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

我对列出的两个程序感到有点困惑((a)创建自签名证书颁发机构和(b)创建代码签名(SPC)证书)。我们做了a然后做b或者是或者是吗?

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

makecert -r -pe -n“CN = My CA”-ss CA -sr CurrentUser          -a sha256 -cy authority -sky signature -sv MyCA.pvk MyCA.cer

创建代码签名(SPC)证书

makecert -pe -n“CN = My SPC”-a sha256 -cy end          -sky签名          -ic MyCA.cer -iv MyCA.pvk          -sv MySPC.pvk MySPC.cer

2 个答案:

答案 0 :(得分:1)

重要免责声明:这当然假定这些证书仅供内部使用;如果您需要客户信任的代码签名证书,您可以跳过步骤(a)并支付实际的CA(其客户已经信任其证书),以便为您签署代码签名证书。

首先创建(自签名)CA证书(a),然后使用它来签署代码签名证书(b)。

可以跳过步骤(a)而只是创建一个自签名代码签名证书,但创建自己的CA证书有好处:

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

答案 1 :(得分:0)

你为什么不尝试一下?或者阅读documentation

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

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