如何更换Postman的SSL证书?iOS模拟器代理HTTPS证书信任问题咨询
解决iOS模拟器通过Postman代理监控HTTPS请求的证书信任问题
嘿,我刚好碰到过完全一样的问题!折腾了半天终于搞定了,核心就是用自己在macOS生成的CA根证书替换Postman自带的过期证书,下面是一步步的操作:
1. 在macOS生成自签名CA根证书
打开终端,依次执行以下命令(密码要记好,后面会用到):
# 生成CA私钥 openssl genrsa -des3 -out myCA.key 2048 # 生成有效期10年的根证书 openssl req -x509 -new -nodes -key myCA.key -sha256 -days 3650 -out myCA.pem
执行时会提示输入私钥密码和证书的基本信息(比如国家、组织名),按提示填写就行,信息不用太严格,能区分开就行。
2. 让macOS信任这个CA证书
- 找到刚生成的
myCA.pem文件,双击它,会自动导入到「钥匙串访问」 - 在钥匙串里找到这个证书,右键选择「显示简介」
- 展开「信任」选项,把「使用此证书时」的选项改成「始终信任」
- 关闭窗口,输入你的系统密码确认修改
3. 给iOS模拟器安装并信任CA证书
首先把证书转换成iOS支持的格式:
openssl x509 -in myCA.pem -out myCA.cer -outform der
然后:
- 把生成的
myCA.cer文件直接拖到正在运行的iOS模拟器窗口里,模拟器会弹出安装提示 - 跟着提示完成安装后,打开模拟器的「设置」→「通用」→「关于本机」→「证书信任设置」
- 找到你刚安装的CA证书,把信任开关打开
4. 配置Postman使用自定义CA证书
- 打开Postman,点击右上角的齿轮图标进入「Settings」→「Proxy」页面
- 在「SSL certificate verification」区域,选择「Custom CA certificate」,然后选中你之前生成的
myCA.pem文件 - 保存设置后重启Postman
5. 重新配置iOS模拟器代理
确保模拟器的HTTP和HTTPS代理都指向Postman的代理地址(一般是localhost:5555,具体看Postman代理设置里的端口),现在再发起HTTPS请求,Postman就能正常捕获且不会出现证书不被信任的问题了!
内容的提问来源于stack exchange,提问作者Joshua Heller




