WCF场景中的自签名证书性能

问题描述:

我读到自签名证书遭遇性能问题(例如,here),但究竟是哪一个?我可以猜测这可能与撤销检查有关但是不确定。WCF场景中的自签名证书性能

我不同意the article关于使用由MakeCert.exe创建的证书时的“性能问题”。

如果创建的证书中不包含吊销信息,则不会因吊销而导致性能损失。可能唯一特定于使用自签名证书的内容如下:您应该在Root证书存储区(受信任的根证书颁发机构)或AuthRoot证书存储区中包含自签名证书(第三方根证书当局)在所有将使用它的计算机上。在此之后,在大多数情况下,您的自签名证书将不会像VeriSign根证书那样更具价值。因为这种方式只能在一家公司内部进行,并且可能很难在具有大量独立客户端计算机的企业方案中使用。

顺便说一下,可以创建一个简单的公钥基础设施相对于MakeCert.exe实用程序。例如,您可以创建你的小CA的自签名根证书:

MakeCert.exe -pe -ss MY -a sha1 -cy authority -len 4096 -e 12/31/2020 -r 
      -n "CN=My Company Root Authority,O=My Company,C=DE" MyCompany.cer 

,那么你可以创建一个额外的独生子女证

MakeCert.exe -pe -ss MY -a sha1 -len 2048 -e 12/31/2020 -eku 1.3.6.1.5.5.7.3.2 
      -n "CN=My Name,O=My Company" -sky exchange 
      -is MY -in "My Company Root Authority" 

您可以选择在​​切换不同的增强密钥使用的OID取决于你想使用证书的场景。

要增加你的小CA的根证书中的AuthRoot证书存储(第三方根证书颁发机构),我们可以使用例如CertMgr.exe实用

CertMgr.exe -add -c MyCompany.cer -s -r localMachine AuthRoot 

您也可以创建和使用Certificate Revocation List File如果需要为你的场景。

有关更多示例,请参见How to: Create Temporary Certificates for Use During Development和其他How to Articles

+1

我也对OP引用的文章中的性能问题感到惊讶。 “这些证书也有性能问题,某些加密操作在使用时可能会执行得很慢,从真正的证书颁发机构颁发的证书没有这个问题,这是一个已知问题。”:我对链接或更多信息表明这是真的,这确实是一个已知的问题。 – Bruno 2010-11-08 13:46:27

+0

@布鲁诺:如果你看看“从真正的证书颁发机构颁发的证书”里面,你会看到**没有特定的**。例如,您可以在%TEMP%\ Verisign.cer中导出“VeriSign Trust Network”证书或自签名的“Microsoft Root Authority”证书,并使用certutil.exe -dump%TEMP%\ Verisign.cer或certutil.exe -asn%TEMP%\ Verisign.cer'来检查它是否包含。你会发现**没有任何**,这使它成为“一个真正的证书颁发机构”。证书必须对应于X.509并且没有隐藏功能。如果您将证书放入'Root'证书库中,您将拥有相同的证书。 – Oleg 2010-11-08 14:05:51

+0

@ Oleg的确,我同意你的观点,这是[本文](http://weblogs.asp.net/cibrax/archive/2006/08/08/Creating-X509-Certificates-for-WSE-or-WCF .aspx),我质疑。(据我所知,唯一能让某些大型CA证书与其他证书不同的是EV证书,这些证书在浏览器中是硬编码的,但这可能对这个问题没有任何影响,特别是因为博客条目显然是在2006年编写的,而EV证书当时并不存在。) – Bruno 2010-11-08 14:11:51