必须将自签名证书导入Mac“系统”钥匙串并设为“始终信任”,否则浏览器仍提示“连接不是私密连接”;Chrome还需重启或刷新mDNS缓存才能生效。

在Mac上为本地开发服务(如Homebridge、Nginx或自建HTTPS API)配置自签名证书后,浏览器仍会显示“您的连接不是私密连接”,这是因为系统未将该证书标记为可信——必须手动导入钥匙串并显式设为“始终信任”才能让Safari、Chrome等应用接受它。
用钥匙串访问导入并设为始终信任
双击生成的 【localhost.crt】 文件,系统自动打开“钥匙串访问”并弹出导入窗口。
在弹出的钥匙串选择框中,【务必选择“系统”钥匙串】,而非默认的“登录”;选错会导致后续浏览器仍报不安全,且无法通过重启修复。
导入成功后,在左侧边栏点击“系统”→右侧列表找到“localhost”条目→双击打开证书详情。
展开“信任”部分→点击“安全策略”旁的三角箭头→在“当使用此证书时”下拉菜单中选择“始终信任”。
关闭窗口时会提示输入管理员密码,输入后立即生效;此时证书图标左下角会出现灰色锁形标记,表示已启用系统级信任。
验证证书是否真正被信任
打开终端,运行:security find-certificate -p /System/Library/Keychains/SystemRootCertificates.keychain | grep -A1 "localhost"。若返回证书内容,说明已正确写入系统根证书库。
在Safari中访问 https://localhost,不再出现红色警告页;若仍跳转到“不安全”提示,说明你之前选错了钥匙串,需先在钥匙串访问中右键删除错误条目,再重新按第一步操作。
Chrome与Edge需额外刷新证书缓存
方法一:重启Chrome并清空地址栏输入 chrome://restart 后回车,强制重载所有安全策略。
方法二:在终端执行:sudo killall -HUP mDNSResponder,刷新系统DNS与证书状态缓存,避免旧证书残留干扰。
Chrome不读取钥匙串的“始终信任”设置,而是依赖系统底层信任链;只要上一步在“系统”钥匙串中完成设置,且未出现证书链断裂(如缺少中间CA),重启后即可正常显示锁形图标。


















