说明:
linux下svn连接Windows SVN服务器出现:SSL handshake failed: SSL 错误:在证书中检测到违规的密钥用法。
之前已经在Windows 2003上用visualSVN配置好了SVN服务器,并且Windows客户端可以正常使用。但是,今天在Ubuntu 11.10(客户端)上运行svn连接Windows SVN服务器,出现类似下面的错:svn: 方法 OPTIONS 失败于 “https://1.0.0.2:8443/svn/xxx”: SSL handshake failed: SSL 错误:在证书中检测到违规的密钥用法。 (https://1.0.0.2:8443)
错误原因是因为Windows使用的证书不能被Linux识别。改正方法是修改Windows SVN服务器上visualsvn使用的证书为第三方产生的证书,以便windows和linux都能识别。
实现:
1.修改svn服务器注册表
32位系统(运行regedit->找到下面的注册表项->增加一个dword类型的值)
[HKEY_LOCAL_MACHINESOFTWAREVisualSVNVisualSVN Server] "CreateGnuTLSCompatibleCertificate"=dword:00000001
64位系统(运行regedit->找到下面的注册表项->增加一个dword类型的值)
[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeVisualSVNVisualSVN Server] "CreateGnuTLSCompatibleCertificate"=dword:00000001
2.重新生成认证证书
打开virsualSVN server | Action | Properties | Certificate
Click to Change certificate… and follow the wizard instructions to generate a new self-signed certificate.
再次执行svn,会提示证书生成者不受信赖的警告,选择永久接受即可。
附录:
上网找了一个英文的网页http://www.visualsvn.com/support/topic/00056/,解决了该问题,现在记录下来。