添加一个自签名证书到iPhone模拟器?

我在我的API的端点上有一个自签名证书。 我正在尝试使用模拟器testing一些东西,但获得“不可信的服务器证书”。

我试图在模拟器上使用safari来下载.crt文件,但是这似乎不起作用。

iPhone Simulator从哪里获取钥匙串? 如何添加可信证书以便我的应用程序可以工作?

UPDATE

我通过创build一个CA然后使用iPhoneconfiguration工具添加一个CA证书来实现它。 然后,我可以在API服务器上获得由该CA证书签名的证书,并且NSConnection正常工作。 出于某种原因,我无法使用自签名证书来工作。 我需要使用configuration软件重新尝试此操作。

我真正的问题是我如何得到这个在模拟器上工作? 我会认为模拟器使用实际电脑的钥匙串。

只要信息,如果有人仍然遇到这个问题:

只需将您的.cer文件拖放到正在运行的Simulator窗口中。 您将看到Safari闪烁,然后显示证书(或证书颁发机构)的导入对话框…

为iOS 7模拟器工作(我认为也适用于iOS 6)。

对于那些发现在模拟器上拖放证书不起作用的用户,最近有一个变化,增加了一个额外的步骤

必须明确告诉模拟器信任根CA. 做到这一点去:

一般 – >关于 – >证书信任设置 – >“为根证书启用完全信任”为您的特定证书

在这里看到完整的答案 :

看一下Charles用来将自签名证书安装到模拟器的钥匙串中的shell脚本。 http://www.charlesproxy.com/documentation/faqs/ssl-connections-from-within-iphone-applications/

也可以看看:

看起来像在模拟器中安装自己的证书可能需要通过Safari将其安装在设备上,然后将设备的TrustStore.sqlite3产生的行复制到模拟器中。

使用iPhone备份提取器 ,我复制我的iPhone的TrustStore.sqlite3~/Library/Application Support/iPhone Simulator/6.0/Library/Keychains ,覆盖现有的文件。 我试图只使用下面的sqlite插入一行,但我不能得到它的工作。

 sqlite3 ~/backup/iOS\ Files/TrustStore.sqlite3 sqlite3>.mode insert sqlite3>.output working.sql sqlite3>select * from tsettings; sqlite3>.quit 

现在, working.sql拥有tsettings表的全部内容(在我的例子中是1行)。

 sqlite3 ~/Library/Application\ Support/iPhone\ Simulator/6.0/Library/Keychains/TrustStore.sqlite3 sqlite3>INSERT INTO tsettings VALUES(X'... sqlite3>.quit 

再一次,上面的sqlite命令不适合我,但可能是别人的一个很好的起点。 将整个TrustStore.sqlite3从备份复制到模拟器中工作得很好。

我有几个月的同样的问题,今天我最后解决了它:

ADVTrustStore

您将要使用github上名为ADVTrustStore的项目。 它做了一些奇特的魔法,但它会正确地将证书安装到模拟器上的根信任存储中。

安装自定义证书的步骤

 # Clone the repo git clone https://github.com/ADVTOOLS/ADVTrustStore.git # Enter the repo directory cd ADVTrustStore/ # Copy your .crt file cp somewhere/something.crt my.crt # conver to a .pem file openssl x509 -in my.crt -out my.pem -outform PEM # Install the pem in the simulators ./iosCertTrustManager.py -a my.pem 

使用这个过程,我能够使用SSL自签名证书退出,使GoogleStreetView图像在公司防火墙后正确呈现

背景

我正在使用CharlesProxy,我发现它正确地将证书安装到模拟器,但他们没有出现在设置 – configuration文件部分。 然后经过一番search,我发现了这个工具。 可能还有一些其他的工具,但在我的情况下,拖放从来没有正常工作的所有情况下。 Safari会很好,但不是我的应用程序。

看看iostrustruby: http : iostrust