私は 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
OpenSSLではs_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-----
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
Apple のman
SVN のページでは、プログラムについて 1 つの段落でのみ説明されています。スイッチの詳細についてさえ触れられていません。
答え1
デフォルトでは、svn クライアントは証明書を使用しません。2 つのオプションがあります。
1.
最新のMozilla CA証明書ca-bundle.crt
ファイルをリンクからダウンロードしてください。cURL ウェブページ。
servers
ホーム ディレクトリでという svn 構成ファイルを見つけます: ~/.subversion/servers
。ファイルと.subversion
フォルダーが存在しない場合は作成します。
servers
構成セクションに証明書バンドルへのパスを追加しますglobal
。
[global]
ssl-authority-files = /path/to/the/ca-bundle.crt
2.
servers
OpenSSL の CA 証明書をインストールし、構成ファイルのセクションに次の行を追加しますglobal
。
[global]
ssl-trust-default-ca = yes
最初は 2 番目のオプションは OS X では機能しないと思っていましたが、テストしてみたところ、実際に機能しました。