【问题标题】:Make your own certificate for signing files?为签名文件制作自己的证书?
【发布时间】:2012-03-14 18:15:16
【问题描述】:

有什么方法可以制作自己的签名证书,以便对安装包等文件进行签名?

问题是证书供应商必须是 Windows 的受信任来源,否则您会收到警告消息?

【问题讨论】:

    标签: certificate code-signing


    【解决方案1】:

    如果您有 PKI 和 X.509 的基本知识,您可以使用 openssl 来完成。

    Openssl 已预先配置 CA.pl or CA.sh script,可用于设置您的 CA 并以最少的配置生成证书。

    主要命令有:

    # generate CA (need to do it only once)
    CA.sh -newca
    # create certificate request
    openssl req -new -keyout user.key -out user.req -config yourconf.cnf
    # sign request by CA
    openssl ca -policy policy_anything -config yourconf.cnf -out user.pem -infiles user.req
    # convert it into PKCS#12 (pfx) container, that can be used from various soft
    openssl pkcs12 -export -in user.pem -inkey user.key -out user.p12 -name user -caname your_ca_name -chain -CAfile ./demoCA/cacert.pem
    

    yourconf.cnf 是一个基于默认 openssl.cnf 的主配置文件,它包含在 openssl 中。 要使您的证书适合代码签名,您应该在允许的密钥使用字段中指定它,如下所示(它会将您的证书限制为仅代码签名):

    [ usr_cert ]
    basicConstraints = CA:FALSE
    keyUsage = digitalSignature
    extendedKeyUsage = codeSigning  
    [ v3_req ]
    keyUsage = digitalSignature
    extendedKeyUsage = codeSigning
    

    要在 Windows 中使用此证书,您应该将 CA 证书作为 CA 授权安装到 Windows 证书存储中。您必须在要验证文件标志的每个工作场所执行此操作。

    【讨论】:

    • 指向 CA.sh 的链接消失了。
    • CA.pl 文档的更新链接(脚本本身包含在分发中)在这里:openssl.org/docs/man1.1.0/apps/CA.pl.html
    • 我明白了:configuration file routines:NCONF_get_string:no value:conf_lib.c:324:group=req name=distinguished_name on "#create certificate request"
    猜你喜欢
    • 2022-08-18
    • 2010-10-22
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多