Subversion 在其 CA 列表中使用什么?

jww*_*jww 3 ssl svn trusted-root-ca macos

我在 Mac OS X 上使用 SVN。通常,当我从 SourceForge 中查看某些内容时,我会看到:

$ svn checkout https://svn.code.sf.net/p/cryptopp/code/trunk/c5 cryptopp-ecies
Error validating server certificate for 'https://svn.code.sf.net:443':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: *.code.sf.net
 - Valid: from Thu, 16 Apr 2015 00:00:00 GMT until Sun, 15 May 2016 23:59:59 GMT
 - Issuer: GeoTrust Inc., US
 - Fingerprint: 1f:7b:73:d5:cf:71:18:76:d5:23:f3:07:c9:2f:f5:4a:52:67:0f:68
Run Code Online (Sandbox Code Playgroud)

OpenSSLs_client显示最顶层的 CA 是Equifax 安全证书颁发机构

$ openssl s_client -connect svn.code.sf.net:443 -showcerts
...
---
Certificate chain
 0 s:/C=US/ST=New York/L=New York/O=Dice Career Solutions/OU=code.sf.net/CN=*.code.sf.net
   i:/C=US/O=GeoTrust Inc./CN=GeoTrust SSL CA - G3
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
 1 s:/C=US/O=GeoTrust Inc./CN=GeoTrust SSL CA - G3
   i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
 2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
   i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

Equifax 安全证书颁发机构 存在于 OS X 的钥匙串中:

在此输入图像描述

所以我不太清楚为什么 Subversion 会提示我。

问题:Subversion 使用什么作为它的 CA 列表?


这是 Apple 的 SVN 1.7.10 版本(不是 Brew 或 Macports):

$ which svn
/usr/bin/svn
$ svn --version
svn, version 1.7.10 (r1485443)
   compiled Jan 15 2014, 11:22:16
Run Code Online (Sandbox Code Playgroud)

Apple 的manSVN 页面仅在一段中描述了该程序。它甚至不关心细节开关。

baf*_*baf 6

默认情况下 svn 客户端不使用任何证书。您有两个选择:

1.

从cURL 网页ca-bundle.crt上的链接下载最新的 mozilla CA 证书文件。

servers在你的主目录中找到 svn 配置文件: ~/.subversion/servers. 如果文件和.subversion文件夹不存在,则创建它们。

servers在配置部分添加证书包的路径global

[global]
ssl-authority-files = /path/to/the/ca-bundle.crt
Run Code Online (Sandbox Code Playgroud)

2.

安装 OpenSSL 的 CA 证书并将以下行添加到您的servers配置文件中global

[global]
ssl-trust-default-ca = yes
Run Code Online (Sandbox Code Playgroud)

最初我认为第二个选项在 OS X 上不起作用,但我测试了它,它确实有效。