我试图找到一些简单问题的答案。
gem
)背景
我正在使用mac(Sierra目前)和rbenv / ruby-build来安装红宝石。 我们使用Sonatype Nexus建立了一个内部rubygems存储库。服务器的证书由公司的内部根证书签署,我有一份副本。
我试图将我们的存储库添加为源
gem sources --add https://our.repository.com/bla/bla
它禁止证书的根目录不受信任。这与我在尝试从存储库(作为代理)中提取时遇到的问题相同,并且对于使用我们的宝石的任何其他团队来说都是一个问题。我需要一个很好的解决方案来建议我的团队和其他人。
显然,如果我设置环境变量SSL_CERT_FILE=/path/to/root_cert.pem
,我可以使用它。但我更愿意将cert文件放在受信任的位置,让它像Java信任存储一样透明地工作。
答案 0 :(得分:11)
通过一些调查和实验,我意识到以下注意事项。 (我建议为此信息执行brew info openssl
):
看看自制软件中有关openssl的输出的有趣部分:
$ brew info openssl
...
A CA file has been bootstrapped using certificates from the SystemRoots
keychain. To add additional certificates (e.g. the certificates added in
the System keychain), place .pem files in
/usr/local/etc/openssl/certs
and run
/usr/local/opt/openssl/bin/c_rehash
This formula is keg-only, which means it was not symlinked into /usr/local,
because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.
...
所以我所要做的就是以下内容,我所有的SSL问题都在Ruby中消失了:
cp /path/to/my/root_certificate.pem /usr/local/etc/openssl/certs
/usr/local/opt/openssl/bin/c_rehash
希望能帮助他人