【问题标题】:Using the same certificate for SSL communication and for signing EXEs and DLLs使用相同的证书进行 SSL 通信以及签署 EXE 和 DLL
【发布时间】:2014-02-10 08:33:24
【问题描述】:

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

如果不是,用于签署 EXE、DLL 和其他二进制文件的证书的标准是什么?

【问题讨论】:

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


    【解决方案1】:

    证书通常具有使用约束、基本约束和扩展约束(扩展密钥使用,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 或奇怪的字段名称。

    【讨论】:

      【解决方案2】:

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

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

      另一方面,如果您使用自签名证书并在您自己的代码中验证此证书,那么没有什么能阻止您生成将 KeyUsage 设置为所需内容的证书并相应地对其进行验证。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-12-30
        • 1970-01-01
        • 2015-12-19
        • 1970-01-01
        • 2012-03-20
        • 2013-04-08
        • 2020-02-14
        相关资源
        最近更新 更多