SVN SSL 握手錯誤
我正在嘗試使用 Cornerstone SVN 客戶端訪問我自己的 SVN 伺服器。我收到以下錯誤消息:
描述:由於無法建立 SSL 會話,因此無法聯繫位於“https:/foo@bar.mooo.info:443”的儲存庫。建議:此 Mac 無法提供有效證書或伺服器的證書因無效而被拒絕。
技術資訊
Error : V4SSLHandshakeFailureError \ Exception : ZSVNSSLHandshakeFailureException
因果資訊
描述:無法連接到 URL ‘https:/foo@bar.mooo.info/svn/robi’ 的儲存庫狀態:175002
說明:“https:/foo@bar.mooo.info/svn/robi”的選項:SSL 握手失敗:SSL 錯誤程式碼 -1/1/336032856 (https:/bar.mooo.info) 狀態:175002
我想我通過Google搜尋和使用搜尋功能找到了解決方案。在apache.org或 serverfault 上描述(SVN SSL 協商失敗)。
當伺服器報告的主機名與 SSL 證書中給出的主機名不匹配時,可能會發生這種情況。確保您的伺服器配置使用正確的 ServerName 和 NameVirtualHost 值。
儘管很尷尬,但我無法實現它有兩個原因。
A)我不知道在哪裡編輯 ServerName 和 NameVirtualHost(httpd.conf 在 apache2 中不再存在)
B)我不知道我必須在那裡添加哪個名稱,設置:
主機名:friedrich(在內部網路)DDNS 名稱:bar.mooo.info(在 SVN 客戶端中輸入)
作業系統:Debian GNU/Linux wheezy/sid (3.2.0-4-amd64)
Apache 版本:伺服器版本:Apache/2.2.22 (Debian)
更多 /etc/apache2/sites-available/ssl.conf :
$$ … $$
<Location /svn> DAV svn SVNParentPath /srv/nas/hd0/svn # this line must be added if you want SSL enabled SSLRequireSSL </Location>
$$ … $$
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
嘗試調試:
echo -e "GET / HTTP/1.0\n\n"|openssl s_client -connect bar.mooo.info:443
如果它正在工作,請顯示證書:
echo ""|openssl s_client -connect bar.mooo.info:443|openssl x509 -text -noout
檢查
Subject:
包含CN=bar.mooo.info
檢查日期是否正確以及客戶端時間是否同步。檢查證書是否受客戶信任:
- 驗證用於簽署主機證書的根證書是否在信任密鑰庫中
- 驗證根證書是否有效且未過期。