iOS15 如何信任自签名证书?

2022-06-01 17:43:12 +08:00
 zj9495

给家里的 nas 上了一套 openssl 自签名的 HTTPS 证书。
在 mac 上已经信任了证书都有了小绿锁,但是在 iPhone 上安装证书后还是显示尚未验证,证书信任设置里也没看到安装的证书。尝试使用 Safari/邮件下载证书安装都不行,难道是现在 iOS 已经不能信任自签名证书了吗?

11725 次点击
所在节点    iPhone
10 条回复
a1274598858
2022-06-01 17:57:59 +08:00
先安装 CER ,然后启用。。https://s3.bmp.ovh/imgs/2022/06/01/9c4339a83df5edc3.jpg

好像要根证书才能这样?
a1274598858
2022-06-01 17:59:36 +08:00
laoyur
2022-06-01 18:21:16 +08:00
有时间限制,最长 390 多天好像,所以你换个短一点的试试呢
crab
2022-06-01 18:45:17 +08:00
证书有效期是不是超过 398 天了?
processzzp
2022-06-01 19:22:45 +08:00
@laoyur 根证书没有这个限制
@zj9495 多半是你的描述文件没写对,PayloadType 是 com.apple.security.root ,PayloadContent 里只放公钥
hguandl
2022-06-01 22:01:21 +08:00
有两个可能的问题,一个是时间太长,另一个是 EKU 没有设置好,我觉得后者可能性更大一些。
iOS 的相关规定可以参考 https://support.apple.com/zh-cn/HT210176

苹果要求的 serverAuth EKU 应该无法直接添加给 CA ,所以需要多一个步骤。

1. 自行签署一个 CA
2. 用 CA 签署一个服务器证书,EKU 中包含 serverAuth
3. 为设备安装 CA 证书,NAS 使用服务器证书

具体教程可以看 https://stackoverflow.com/questions/21297139/how-do-you-sign-a-certificate-signing-request-with-your-certification-authority/21340898#21340898
注意回答中的代码有一行 extendedKeyUsage ,这个就是 EKU ,需要取消前面的 # 注释。其他的安装教程操作即可。
zj9495
2022-06-02 09:34:43 +08:00
@laoyur #3
@crab #4 日期是一年的,所以没超过 398 天

@a1274598858 #1
@processzzp #5 所以说得信任根证书才行?我信任的应该是服务器证书
zj9495
2022-06-02 09:41:34 +08:00
@hguandl #6 我 iPhone 应该安装的是服务器证书,就是 cert 格式的那个😂 。这么说我应该安装 CA ?但是我这 cert 证书在 macos12 上信任以后,Safari/Chrome 都能正常使用了,是不是已经符合苹果的要求了?我来再按照链接里的配置试试~
hguandl
2022-06-02 10:11:57 +08:00
@zj9495 我也发现 macOS 只需要添加服务器证书就可以用了,iOS 实际上会更严格一些,需要安装的是 CA 。
jim9606
2022-06-02 11:50:25 +08:00
建议用自建 CA 而不是自签名证书。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/856779

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX