You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu环境下无法通过SSL连接Visual SVN服务器求助

我之前帮朋友排查过几乎一模一样的跨系统SVN连接问题,结合你的场景,问题大概率出在新旧系统的SSL协议/加密套件不兼容,或者自签名证书未被Ubuntu信任上,给你一步步拆解解决:

一、先搞定Firefox的用户名密码不生效问题

新版Firefox为了安全,默认禁用了TLS 1.0、TLS 1.1这类旧协议,而Windows Server 2003上的Visual SVN服务大概率只支持这些老协议,导致握手后身份验证环节出问题。按下面步骤调整:

  1. 打开Firefox,地址栏输入about:config,点击「接受风险并继续」。
  2. 搜索以下配置项,把它们的值改成对应设置:
    • security.tls.version.min:设置为1(对应启用TLS 1.0)
    • security.tls.version.fallback-limit:设置为1
    • security.tls.enable_0rtt_data:设置为false(避免握手时的额外冲突)
  3. 重启Firefox,再访问https://ipaddress/svn。如果是自签名证书,会提示不安全,记得选「高级」→「接受风险并继续」,之后再输入用户名密码试试。
二、解决RabbitVCS的SSL通信错误

RabbitVCS依赖Ubuntu系统的OpenSSL库,而新版Ubuntu的OpenSSL默认也禁用了旧协议和弱加密套件,直接导致SSL握手失败,连密码框都弹不出来。试试这几个方法:

方法1:给SVN客户端指定兼容的SSL协议

这是最推荐的方法,只针对SVN生效,不影响系统其他程序:

  1. 打开终端,编辑SVN全局配置文件:
    sudo nano /etc/subversion/servers
    
  2. [global]段落下面添加以下内容:
    ssl-protocol = TLSv1
    ssl-cipher-list = AES128-SHA:AES256-SHA:DES-CBC3-SHA
    
    这些都是Windows Server 2003支持的常见加密套件。
  3. 保存退出(按Ctrl+O→回车→Ctrl+X),重启RabbitVCS再尝试连接。

方法2:临时降低系统OpenSSL安全级别(仅测试用)

如果方法1没用,可以临时调整系统OpenSSL的配置,但不建议长期这么用(毕竟降低了安全性):

  1. 终端执行:
    export OPENSSL_CONF=/etc/ssl/openssl.cnf
    sudo nano /etc/ssl/openssl.cnf
    
  2. 找到[system_default_sect]段落,修改以下两行:
    MinProtocol = TLSv1
    CipherString = DEFAULT@SECLEVEL=1
    
  3. 保存后重启RabbitVCS,或者新开终端再操作。

方法3:信任服务器的自签名证书

如果你的SVN服务器用的是自签名证书,Ubuntu默认不认可,也会导致SSL错误:

  1. 先在Windows的Firefox里导出证书:访问SVN地址→点击地址栏锁图标→「证书」→「详细信息」→「导出」,保存为PEM格式。
  2. 把证书传到Ubuntu(用U盘或scp都可以)。
  3. 终端执行以下命令导入证书:
    sudo cp your-cert.pem /usr/local/share/ca-certificates/
    sudo update-ca-certificates
    
  4. 之后再用RabbitVCS连接试试。
三、额外提醒

Windows Server 2003已经停止官方支持很多年了,它的SSL协议和加密套件都是不安全的,建议尽快升级服务器系统,或者至少把Visual SVN升级到能支持的最新版本(如果还兼容2003的话),从根本上解决安全和兼容性问题。

如果以上方法都不行,可以先用SVN命令行测试,比如执行:

svn info https://ipaddress/svn

看看输出的错误信息,能帮你更精准地定位问题。

内容的提问来源于stack exchange,提问作者zboxman

火山引擎 最新活动