我希望能够让客户上传他们自己的配置文件,包括图标,这样我就可以即时为他们制作一个定制版本的应用程序,供他们发布使用。
然而,我在验证配置文件时遇到了一些问题。特别是,我想检查DeveloperCertificate是否实际上是一个有效的证书。该配置文件大致如下:
然而,我在验证配置文件时遇到了一些问题。特别是,我想检查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>
所以,我提取了证书,然后想要使用 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
有没有人能指点我一下?我需要某种方式来验证开发者证书的有效性,这非常重要。
谢谢。
/usr/bin/base64
命令使用-D
参数进行解码,而不是-d
参数。因此完整的命令应该是cat certificate | base64 -D - | openssl x509 -inform DER -noout -text
。 - Phil Calvin