Linux

SVN SSL 握手錯誤

  • February 11, 2013

我正在嘗試使用 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 檢查日期是否正確以及客戶端時間是否同步。檢查證書是否受客戶信任:

  • 驗證用於簽署主機證書的根證書是否在信任密鑰庫中
  • 驗證根證書是否有效且未過期。

引用自:https://serverfault.com/questions/477697