You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自托管Atlassian BitBucket SSL证书续期后Git推拉代码遇SSL证书错误

解决BitBucket续期DigiCert证书后Git SSL认证失败问题

我刚帮团队搞定过几乎一模一样的状况——自托管BitBucket续期DigiCert证书后,全员Git拉推都报SSL证书错误。大概率是证书链不完整或者服务器端部署漏了步骤,毕竟之前都正常,这次肯定是新证书的配置出了小问题。下面是亲测有效的解决流程:

第一步:先检查服务器端的证书链是否完整

DigiCert的证书必须搭配完整的信任链(服务器证书+中间证书+根证书),很多人续期后只替换了服务器证书,没更新中间链,导致客户端无法验证到信任的根证书。

  • 登录你的Ubuntu服务器,找到BitBucket的证书配置文件:

    • 如果是BitBucket自带的Tomcat,路径一般是/opt/atlassian/bitbucket/<你的版本号>/conf/server.xml,找里面的SSLCertificateFile和SSLCertificateChainFile配置项
    • 如果用了Nginx反向代理,就看Nginx的站点配置文件,找ssl_certificate和ssl_trusted_certificate
  • 用openssl命令验证当前证书链:

    openssl s_client -connect 你的BitBucket域名:443 -showcerts
    

    输出里如果最后没有显示DigiCert的根证书(比如DigiCert Global Root CA),说明链不完整。去DigiCert官网下载对应类型的最新中间证书,把它和你的服务器证书合并成一个完整的链文件(顺序要对:服务器证书在前,中间证书在后,根证书可选但建议加上),然后更新配置文件里的路径。

第二步:重启服务让新证书生效

证书更新后必须重启BitBucket(或反向代理),别忘这一步:

# 重启BitBucket服务
sudo service atlbitbucket restart

# 如果用了Nginx,还要重启Nginx
sudo service nginx restart

第三步:给开发者的临时应急方案(仅临时用,别长期开)

如果服务器端还在排查,开发者可以临时绕过证书验证,但这有安全风险,解决后一定要改回来:

# 仅针对你的BitBucket域名禁用证书验证
git config --global http.https://你的BitBucket域名.sslVerify false

# 问题解决后恢复验证
git config --global --unset http.https://你的BitBucket域名.sslVerify

⚠️ 绝对不推荐全局禁用http.sslVerify,会让所有Git操作都跳过证书验证,风险很高。

第四步:排查开发者本地的CA证书库

少数情况是开发者本地系统的CA证书库没有更新DigiCert的根证书,尤其是用旧系统的用户:

  • Windows用户:从DigiCert官网下载最新的根证书,双击安装到“受信任的根证书颁发机构”
  • Ubuntu/Linux用户:更新系统CA证书:
    sudo apt update && sudo apt install --reinstall ca-certificates
    
  • macOS用户:打开「钥匙串访问」,导入DigiCert根证书,右键设置为「始终信任」

第五步:验证证书配置是否正确

在服务器上用openssl验证合并后的证书链:

openssl verify -CAfile /path/to/你的完整证书链文件.crt /path/to/你的服务器证书.crt

如果返回OK,说明证书链没问题;如果报错,就是证书文件的顺序或内容有问题,重新调整就行。


我当时就是漏了更新中间证书,导致全员报错,按上面的步骤走,基本半小时内就能搞定。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:05:42