使用相同的证书进行SSL通信以及签署EXE和DLL

时间:2014-02-10 08:33:25

标签: c# .net ssl code-signing x509certificate

我有一个官方机构颁发的用于SSL通信的证书,我可以使用相同的证书签署我的EXE或DLL。

如果没有,那么用于签署EXE和DLL以及其他二进制文件的证书的标准是什么?

2 个答案:

答案 0 :(得分:2)

证书通常具有使用限制,基本约束和扩展约束(扩展密钥用法,EKU)。这取决于您可以使用它的那些设置。这些设置可以包括客户端和服务器授权,代码签名(这是您感兴趣的内容),是否可以将证书用作中间CA等。

以下是可能的EKU的概述:http://javadoc.iaik.tugraz.at/iaik_jce/current/iaik/x509/extensions/extendedkeyusage.html。和基本约束:http://javadoc.iaik.tugraz.at/iaik_jce/current/iaik/x509/extensions/BasicConstraints.html。 Windows内置证书查看器GUI以人类可读的形式很好地显示所有这些约束,因此您无需解码OID或奇怪的字段名称。

答案 1 :(得分:1)

如在另一个答案中所述,X.509证书包括KeyUsage和ExtKeyUsage扩展,它们描述了证书的用途。

大多数(如果不是全部)证书颁发机构不会出于商业原因以及出于安全原因而颁发对SSL / TLS和代码签名有效的证书。

另一方面,如果您使用自签名证书并在自己的代码中验证此证书,那么没有什么可以阻止您生成KeyUsage设置为您所需的证书并相应地验证它。