我需要以编程方式从用于签署iOS应用程序的证书中获取数据(公钥)。有谁知道这是否有可能?有一些API吗?看起来像MacOS有几种解决方案,但它们都不适合iOS。是否可以从iOS应用程序签署的证书中获取数据?
回答
尝试以下步骤:
- 提取您的iOS应用程序(扩展名:
.ipa
)的内容。你可以简单地使用Archive Utility来做到这一点。 - 切换到提取的内容,在那里你看到一个应用程序文件(扩展名:
.app
) - 右键点击应用,然后选择显示包内容
- 你会看到你的名字下使用供应配置文件:embedded.mobileprovision
- 在终端(使用正确的路径)中执行以下命令或使用您选择的应用程序(如TextWrangler)打开
embedded.mobileprovision
。你会找到<data>
元素中的签名证书密钥(或者,如果你使用一个以上的证书)内DeveloperCertificates的对propertyList安全 CMS -D -i embedded.mobileprovision
此外,如果要提取的公共密钥并将其直接保存到一个文件中,执行终端如下:
下载并安装自制,如果你还没有安装它已经:
红宝石-e “$(卷曲-fsSL https://raw.github.com/mxcl/homebrew/go/install)”
安装XMLStarlet或其他任何工具,它可以帮助我们解析plist的内容:
brew install xmlstarlet
像以前一样,我们使用
security cms
命令解码embedded.mobileprovision轮廓,但这次我们直接馈送它XMLStarlet(所述xml
命令)来解析DeveloperCertificates
元件,的数据部分,其包含公钥。我们用openssl读取它并将其写入文件,我们称之为publickey.pem:
security cms -D -i embedded.mobileprovision | xml sel -t -v“/ plist/dict/key [。='DeveloperCertificates']/following-sibling :: array [1]/data [1]”| awk'{print $ 1}'| sed'/^$/d'| base64 -D | openssl x509 -inform der> publickey。PEM
你会找到公共密钥的文件
publickey.pem
你应该也可以在运行时做到这一点。见http://stackoverflow.com/questions/17584426/check-if-app-is-ad-hocdevapp-store-build-at-run-time – jverrijt
中如果你想从应用程序内部检查证书,那么它在iOS上是不可能的。其中一个主要原因是Apple申请辞职。
iOS应用程序在Mac OS上的沙盒程序要多得多。
- 1. 是否可以使用SSL证书签署我的程序集?
- 2. 如何获取ios应用程序的签名应用程序证书信息
- 3. 是否可以验证自签名证书和可信证书?
- 4. 是否可以在我的应用程序iOS中从Skype获取通知?
- 5. 通用应用程序是否可以在iOS 3.0上部署?
- 6. 是否有可能使用更新的证书重新签署Java小程序?
- 7. 如何从Window Store证书签署Windows Store应用程序?
- 8. Adobe Air应用程序是否可以关闭自签名证书警告?
- 9. 是否可以重新签署Mac OSX应用程序
- 10. 是否可以从另一个iPhone应用程序中浏览Safari书签?
- 11. iOS中的手机应用程序是否可以从其他应用程序获取文本?
- 12. 在ClickOnce部署中使用证书签名应用程序
- 13. 应该可以使用iCloud获取iOS书签吗?
- 14. 在部署应用程序时获取证书错误
- 15. 是否可以从Flash应用程序获取颜色代码?
- 16. 自签名证书是否可供签署SAML令牌?
- 17. 在Rails应用程序中签署新证书
- 18. 使用不同的证书签署Blackberry 10应用程序
- 19. 使用WineBottler签署应用程序的正确证书
- 20. 生成用于签署AIR的证书应用程序
- 21. 是否可以使用PositiveSSL证书签署EXE(可执行文件)?
- 22. 是否可以通过编程从iOS应用程序获取应用程序ID?
- 23. iOS - iOS应用程序是否可以仅供内部公司用户部署
- 24. 如何在iOS应用程序中使用自签名证书
- 25. 是否有可能从android中的另一个应用程序获取数据?
- 26. iOS证书过期:您是否重新提交应用程序?
- 27. 使用数字证书签署程序集或exe文件是否可以防止篡改攻击?
- 28. 我可以在没有开发人员证书的情况下签署IOS应用程序吗?
- 29. 是否可以从我的iPhone恢复iOS应用程序?
- 30. 无法使用分发证书签署iPhone应用程序
难道你不能从Apple Developer Portal中复制公钥/私钥吗?答案如下:http://stackoverflow.com/a/6708011/1515075 –