certificate - 制作自己的文件签名证书?

标签 certificate code-signing

有什么办法可以制作自己的签名证书来对安装包之类的文件进行签名?

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

最佳答案

如果您具有有关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随附的默认openssl.cnf的主配置文件。
为了使您的证书适合代码签名,您应该在这样的允许的 key 用法字段中指定它(它将证书限制为仅代码签名):
[ usr_cert ]
basicConstraints = CA:FALSE
keyUsage = digitalSignature
extendedKeyUsage = codeSigning  
[ v3_req ]
keyUsage = digitalSignature
extendedKeyUsage = codeSigning

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

关于certificate - 制作自己的文件签名证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9428335/

相关文章:

ssl - 为什么证书颁发机构 (CA) 从中间机构而不是根机构颁发证书?

openssl - 使用 openssl 创建 tsa(时间戳)证书 - 在证书中添加 ExtendedKeyUsage

java - 使用 Java keytool 的 PKCS11 格式 key

android - apk2bar 生成包的 Blackberry package-id

ios - 如何修复 "Command/usr/bin/codesign failed with exit code 1"错误

sql - 在 SQL Server 数据库中保存 pem 证书

ios - 如何在Keychain中找到用SecItemAdd添加的证书

code-signing - 自动 "secure"代码签名

objective-c - 代码签名错误 : The identity 'iPhone Distribution:' doesn't match any valid, 未过期的证书/私钥对..有什么解决方案吗?

iphone - 验证证书和配置文件