使用 Ruby 将证书添加并信任到默认 OS X 钥匙串

Adding and trusting a cert to default OS X keychain with Ruby

作为在本地服务器上设置自签名 SSL 的一部分,我想自动执行将证书添加到默认钥匙串的步骤,并将 OS X 的钥匙串设置为 "Always Trust" "Use system defaults".

我已经创建了证书并将其添加到钥匙串中,但我似乎无法找到正确的标志来告诉 OS X 始终信任该证书。这是我正在使用的:

def trust(cert)
  default_keychain = `security default-keychain`.chomp.strip.gsub '"', ''
  system "security -l add-trusted-cert -r trustRoot -p ssl -k #{default_keychain} #{cert_location}"
end

因为我没有使用 -d 标志,所以可能没有必要在 default_keychain 中做这些工作,但这不是问题的根源。

有什么想法吗?

事实证明这是 -r 标志的错误参数。 trustRoot 用于根证书,这不是我提供的证书类型。使用 trustAsRoot 按预期工作,始终信任证书。这升级 security 需要用户密码,但我可以接受。