我正在尝试使用 Cornerstone SVN 客户端访问我自己的 SVN 服务器。我收到以下错误消息:
描述:无法联系“https:/[电子邮件保护]:443”,因为无法建立 SSL 会话。建议:此 Mac 无法提供有效证书,或者服务器的证书因无效而被拒绝。
技术信息Error : V4SSLHandshakeFailureError \ Exception : ZSVNSSLHandshakeFailureException
因果信息
描述:无法连接到 URL 为“https:/[电子邮件保护]/svn/robi' 状态 : 175002
描述:'https:/[电子邮件保护]/svn/robi':SSL 握手失败:SSL 错误代码 -1/1/336032856(https:/bar.mooo.info)状态:175002
我认为我通过谷歌搜索和使用搜索功能找到了解决方案。描述于Apache 网站或在 serverfault 上(SVN SSL 协商失败)。
当服务器报告的主机名与 SSL 证书中给出的主机名不匹配时,可能会发生这种情况。请确保您的服务器配置对 ServerName 和 NameVirtualHost 使用正确的值。
虽然很尴尬,但由于两个原因,我无法实现它。
A)我不知道在哪里编辑 ServerName 和 NameVirtualHost(apache2 中不再有 httpd.conf)
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
答案1
尝试使用以下方法进行调试:
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
日期是否正确以及客户端时间是否同步。检查证书是否受到客户端信任:
- 验证用于签署主机证书的根证书是否位于信任密钥库中
- 验证根证书是否有效且未过期。