将自签名证书添加到iphone Simulator?

jr.*_*jr. 75 iphone ssl pki keychain ios-simulator

我在API的端点上有一个自签名证书.我正在尝试使用模拟器测试一些东西,但我得到"不受信任的服务器证书".

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

iPhone模拟器从哪里获得钥匙串?如何添加可信证书以使我的应用程序正常运行?

UPDATE

我通过创建CA然后使用iPhone配置工具添加CA证书来实现它.然后我能够在API服务器上获得由该CA证书签名的证书,并且NSConnection正常工作.由于某种原因,我无法使用自签名证书使其工作.我需要使用配置软件重新尝试此操作.

我真正的问题是如何让它在模拟器上运行?我认为模拟器使用实际计算机的钥匙串.

sea*_*oxx 103

仅供参考,如果有人仍然遇到这个问题:

只需将.cer文件拖放到正在运行的模拟器窗口即可.您将看到Safari闪烁,然后是证书(或证书颁发机构)的导入对话框......

适用于iOS 7模拟器(我认为也适用于iOS 6).

  • 对于iOS 7模拟器来说,拖放工作正常.我可以验证它在iOS 6.0/6.1模拟器上不起作用. (3认同)
  • 你是我的朋友 (3认同)
  • 是我还是因为我已经升级到Xcode 6,这个拖放功能现在只适用于iOS 8版本的模拟器.试过iPhone 5s iOS 7和iOS 7.1模拟器,当我将证书拖到模拟器窗口时没有任何反应.现在我卡住了,除了iOS 8之外无法测试我的应用程序. (2认同)
  • 找出iOS 7和7.1的解决方法:将.cer文件放在可访问的Web服务器上,(如果需要,添加application/x-x509-ca-cert mime类型)并在模拟器上使用Safari下载证书来自Web服务器.然后它会要求你安装它,就像你拖放它一样. (2认同)

Gau*_* C. 34

对于那些发现在模拟器上拖放证书不起作用的人来说,最近的更改增加了一个额外的步骤.

必须明确告知模拟器信任根CA. 这样做是为了:

常规 - >关于 - >证书信任设置 - >为您的特定证书启用"根证书的完全信任"

这里看到完整的答案:

  • 在运行ios 10.3的模拟器上没有"启用根证书的完全信任"选项 (10认同)
  • 就我而言,“为根证书启用完全信任”选项仅针对根证书出现。对于中间证书或叶子证书,它不会出现。 (3认同)
  • 我还发现,使用 openssl 生成证书时,证书必须将 CA 基本约束选项设置为 true:`basicConstraints = CA:TRUE`。否则它不会显示为可信。 (2认同)
  • 看来,在12.2(可能还有更早的版本)上,该过程现在是转到常规>配置文件,选择证书,然后单击右上角的install。 (2认同)

Jee*_*eef 19

我有几个月同样的问题,今天我最终用以下方法解决了这个问题:

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
Run Code Online (Sandbox Code Playgroud)

使用此过程,我可以使用SSL重新签名自签名证书,在公司防火墙后面正确呈现GoogleStreetView图像

背景

我正在使用CharlesProxy,我注意到它正确地将证书安装到模拟器中,但它们没有显示在" 设置 - 配置文件"部分中.经过一番搜索,我发现了这个工具.可能还有其他一些工具,但在我的情况下,拖放从来没有在所有情况下正常工作.Safari会很好但不是我的应用程序.

  • 提示:重新启动模拟器以安装新证书。 (2认同)

Kni*_*lry 12

对于使用 OS X Catalina 的任何人,请查看:https : //forums.developer.apple.com/thread/124056

Catalina 当前阻止访问桌面、文档和下载文件夹。我将证书文件移动到共享文件夹,然后将文件从那里拖放到模拟器中。

  • 愿上帝保佑你健康:) (4认同)

Jon*_*nah 9

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

也可以看看:

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


Tha*_*nka 5

拖放曾经可以工作,但对我来说在 XCode 12 上不起作用。对我有用的是在模拟器上打开 Safari 浏览器,然后输入 .crt 证书文件的文件 URL。前任。

file:///Users/[folder_path]/[certificate.crt]
Run Code Online (Sandbox Code Playgroud)

之后,您必须转到 Simulator Settings 并通过导航到 General > Profiles 部分来安装证书。


fan*_*ing 5

对于IOS14,拖拽完成后,需要进入:

General -> Profile -> select you profile -> install
Run Code Online (Sandbox Code Playgroud)

进而:

General -> About -> Certificate Trust Settings -> "Enable Full Trust for Root Certificate" for your particular certificate

Run Code Online (Sandbox Code Playgroud)

另请参阅https://developer.apple.com/library/archive/qa/qa1948/_index.html