Doa*_*Doa 5 iphone openssl certificate ios ios-provisioning
我想允许客户上传他们自己的配置文件,包括图标,以便我可以随时将它们作为我的应用程序的自定义版本,然后他们可以发布.
但是,我在验证配置文件时遇到了一些麻烦.特别是,我想检查DeveloperCertificate是否真的是一个有效的证书.该配置文件看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ApplicationIdentifierPrefix</key>
<array>
<string>ABCDEFGH</string>
</array>
<key>CreationDate</key>
<date>2012-03-28T11:17:23Z</date>
<key>DeveloperCertificates</key>
<array>
<data>
MIIFajCCBFKgAwIBAgIIddUra9YprMQwDQYJKoZIhvcNAQEFBQAwgZYxCzAJ
BgNVBAYTAlVTMRMwEQYDVQQKDApBcHBsZSBJbmMuMSwwKgYDVQQLDCNBcHBs
ZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9uczFEMEIGA1UEAww7QXBw
...
</data>
</array>
...
</dict>
Run Code Online (Sandbox Code Playgroud)
因此,我提取证书,然后想要检查它们,最好使用openssl
命令.这些证书使用的加密是什么,如何使用openssl验证它们?我认为这使用pkcs12,但尝试这给我一个错误:
$ openssl pkcs12 -noout -in testcertificate
140653159306912:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1319:
140653159306912:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=PKCS12
Run Code Online (Sandbox Code Playgroud)
谁能指出我正确的方向?我必须以某种方式验证开发人员证书的有效性.
谢谢
我一直在研究这个问题,事实证明它并不像大卫描述它那么难.解决方案实际上非常简单:
证书是base64编码的DER证书.您需要做的是以下内容:
Base64-解码证书:
base64 -d certificate> certificate.crt
使用OpenSSL测试证书:
openssl x509 -inform DER -in certificate.crt -noout -text
或者,如果我们管道它:
cat certificate | base64 -d - | openssl x509 -inform DER -noout -text
Run Code Online (Sandbox Code Playgroud)
该-text
选项使openssl提供所有细节,但您可以根据自己的意愿指定.例如,假设您只关心证书是否是实际的分发证书,您可以使用该-subject
选项并查看该CN=
字段.
归档时间: |
|
查看次数: |
2971 次 |
最近记录: |