You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac OS不同版本中security add-trusted-cert命令兼容性问题求助

macOS版本差异导致security add-trusted-cert命令参数失效的原因及通用解决办法

原因解释

  • 在macOS 12.3.1及更早的Monterey版本中,security add-trusted-cert命令使用-r trustRoot作为标记系统根信任证书的有效参数。
  • 苹果在macOS 12.5及后续更新中调整了信任设置的参数规范,将trustRoot替换为trustAsRoot,同时废弃了旧参数。这就导致跨版本执行不匹配的参数时,会触发SecTrustSettingsSetTrustSettings: One or more parameters passed to a function were not valid错误。

通用兼容命令

可以通过判断系统版本自动选择对应参数,以下是兼容所有Monterey版本的shell脚本:

#!/bin/bash

# 替换为你的证书路径
CERT_PATH="./blabla.blabla..."
KEYCHAIN="/Library/Keychains/System.keychain"

# 提取macOS版本的第二位数字(比如12.3.1取3,12.5取5)
OS_VERSION_MINOR=$(sw_vers -productVersion | cut -d '.' -f 2)

if [ "$OS_VERSION_MINOR" -ge 5 ]; then
    # macOS 12.5及以上版本使用trustAsRoot
    /usr/bin/security add-trusted-cert -r trustAsRoot -k "$KEYCHAIN" -p ssl -p basic -d "$CERT_PATH"
else
    # macOS 12.3.1及更早版本使用trustRoot
    /usr/bin/security add-trusted-cert -r trustRoot -k "$KEYCHAIN" -p ssl -p basic -d "$CERT_PATH"
fi

使用说明:

  • 将CERT_PATH替换为你的实际证书路径
  • 保存为.sh文件后赋予执行权限(chmod +x script.sh),运行即可自动适配系统版本

内容的提问来源于stack exchange,提问作者Seydou Doumbia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:05:23