ssl - 提取证书部分以使用 OpenSSL 签署文件

标签 ssl openssl code-signing code-signing-certificate signtool

我希望使用以下命令签署 .mobileconfig 文件:

openssl smime \
-sign \
-signer your-cert.pem \
-inkey your-priv-key.pem \
-certfile TheCertChain.pem \
-nodetach \
-outform der \
-in ConfigProfile.mobileconfig \
-out ConfigProfile_signed.mobileconfig

我有一个请求并安装在我的机器上的 SSL 证书,以及一个请求并安装在我的机器上的代码签名证书。

现在我应该使用哪个证书(代码签名或 SSL?),以及如何获取 your-cert.pem,your-priv-key.pemTheCertChain.pem 文件?

再次访问 GoDaddy 只给了我一个 .pem 文件,我什至不知道是哪个文件。

在 GoDaddy 的 .pem 上运行 openssl x509 -in godaddy.pem -inform pem -noout -text 给出以下结果:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 0 (0x0)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=US, O=The Go Daddy Group, Inc., OU=Go Daddy Class 2 Certification Authority
        Validity
            Not Before: Jun 29 17:06:20 2004 GMT
            Not After : Jun 29 17:06:20 2034 GMT
        Subject: C=US, O=The Go Daddy Group, Inc., OU=Go Daddy Class 2 Certification Authority
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:de:9d:d7:ea:57:18:49:a1:5b:eb:d7:5f:48:86:
                    ea:be:dd:ff:e4:ef:67:1c:f4:65:68:b3:57:71:a0:
                    ****REMOVED FOR BREVITY****
                    58:c6:44:7b:0a:3e:62:28:5f:ba:41:07:53:58:cf:
                    11:7e:38:74:c5:f8:ff:b5:69:90:8f:84:74:ea:97:
                    1b:af
                Exponent: 3 (0x3)
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                D2:C4:****REMOVED FOR BREVITY****:A8:6A:D4:E3
            X509v3 Authority Key Identifier: 
                keyid:D2:C4:****REMOVED FOR BREVITY****D:A8:6A:D4:E3
                DirName:/C=US/O=The Go Daddy Group, Inc./OU=Go Daddy Class 2 Certification Authority
                serial:00

            X509v3 Basic Constraints: 
                CA:TRUE
    Signature Algorithm: sha1WithRSAEncryption
         32:4b:f3:b2:ca:3e:91:fc:12:c6:a1:07:8c:8e:77:a0:33:06:
         14:5c:90:1e:18:f7:08:a6:3d:0a:19:f9:87:80:11:6e:69:e4:
         96:17:30:ff:34:91:63:72:38:ee:cc:1c:01:a3:1d:94:28:a4:
         ****REMOVED FOR BREVITY****
         10:43:a6:a5:9e:0a:d5:95:62:9a:0d:cf:88:82:c5:32:0c:e4:
         2b:9f:45:e6:0d:9f:28:9c:b1:b9:2a:5a:57:ad:37:0f:af:1d:
         7f:db:bd:9f

最佳答案

您需要使用您的私钥、证书和链进行签名。

your-cert.pem 是 GoDaddy 颁发给您的证书。

your-priv-key.pem 是您在钥匙串(keychain)或命令行上生成的用于创建 CSR 的私钥。

TheCertChain.pem 是 GoDaddy 的证书链,你可以在他们的网站上找到它

仅供引用,这是关于我如何在 Ruby 中签署 .mobileconfig 的示例代码 https://github.com/AppBlade/TestHub/blob/master/app/controllers/devices_controller.rb#L31

关于ssl - 提取证书部分以使用 OpenSSL 签署文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26103968/

相关文章:

redirect - Azure 云服务 SSL 从暂存槽重定向到生产槽

Apache 未启动

在 C 代码中使用 OpenSSL 进行明文签名

windows - 对 Inno Setup 生成的我的程序的安装程序进行签名,使其成为一家值得信赖的公司?

code-signing - 如何使用我的代码签名证书对 exe 和 dll 进行签名

php - Telegram webhook 不传递任何数据(ssl 可以)

ssl - 替换 SSL 证书后启动 WAMP 图标时出现 WAMP 错误为橙色

pycurl 和 openssl 的 Python 问题

php - c++中的加密和php中的解密有什么问题

ios - 能够在越狱的 iOS 上运行未签名的应用程序