TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装指导
    • 开启 Kerberos
    • 魔改分享
  • 版本专题

    • 更新说明
    • BUG临时处理
  • 实验室

    • VIEW插件
    • JIRA速查
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Kylin V10系列
    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 支持&共建

    • 蓝图愿景
    • 合作共建
登陆
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装指导
    • 开启 Kerberos
    • 魔改分享
  • 版本专题

    • 更新说明
    • BUG临时处理
  • 实验室

    • VIEW插件
    • JIRA速查
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Kylin V10系列
    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 支持&共建

    • 蓝图愿景
    • 合作共建
登陆
GitHub (opens new window)
  • 通用部分

    • not set for current OS

      • 解读-不支持操作系统解读
      • 解决-增加系统支持范围(一)
      • 解决-增加系统支持范围(二)
      • 解决-增加系统支持范围(三)
      • 解决-增加系统支持范围(四)
    • 解决-TLS1.3导致依赖下载失败终极办法
      • 一、问题现象
      • 二、原因分析
      • 三、尝试过的方案
      • 四、根治方案 —— 系统全局强制 TLS1.2
      • 五、验证步骤
      • 六、方案对比与结论
  • SYS-Kylin V10
  • 通用部分
JaneTTR
2025-09-28
目录

解决-TLS1.3导致依赖下载失败终极办法

# 一、问题现象 构建失败

在 Kylin V10 系统下编译 Ambari 时,执行 Bower 拉取依赖时出现报错:

bower underscore#1.7.0                                cached https://github.com/jashkenas/underscore.git#1.7.0
bower underscore#1.7.0                              validate 1.7.0 against https://github.com/jashkenas/underscore.git#1.7.0
bower sinon#1.10.3                                    cached https://github.com/cjohansen/Sinon.JS.git#1.10.3
bower sinon#1.10.3                                  validate 1.10.3 against https://github.com/cjohansen/Sinon.JS.git#1.10.3
bower angular-translate#*                             cached https://github.com/PascalPrecht/bower-angular-translate.git#2.19.1
bower angular-translate#*                           validate 2.19.1 against https://github.com/PascalPrecht/bower-angular-translate.git#*
bower lodash#>=1.3.0 <2.5.0                           cached https://github.com/lodash/lodash.git#2.4.2
bower lodash#>=1.3.0 <2.5.0                         validate 2.4.2 against https://github.com/lodash/lodash.git#>=1.3.0 <2.5.0
bower jquery#1.9.1 - 3                            not-cached https://github.com/jquery/jquery-dist.git#1.9.1 - 3
bower jquery#1.9.1 - 3                               resolve https://github.com/jquery/jquery-dist.git#1.9.1 - 3
bower jquery#1.9.1 - 3                               ECMDERR Failed to execute "git ls-remote --tags --heads https://github.com/jquery/jquery-dist.git", exit code of #128 fatal: unable to access
 'https://github.com/jquery/jquery-dist.git/': OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

Additional error details:
fatal: unable to access 'https://github.com/jquery/jquery-dist.git/': OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Ambari Main 3.0.0.0.0:
[INFO]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

对应的 Maven 控制台输出:

构建失败日志

影响范围

  1. git clone / bower install 拉取部分依赖失败;
  2. curl 下载某些依赖(如 phantomjs)中断;
  3. 报错集中在 SSL_ERROR_SYSCALL。

# 二、原因分析 TLS1.3兼容性

在 Kylin V10 / RHEL8 系统中,OpenSSL 默认启用了 TLS1.3。 但部分外部依赖仓库(尤其是老旧 Git 仓库或二进制下载站点),对 TLS1.3 握手过程支持不完整,导致连接中断。

排查线索

  • 使用 git ls-remote 可复现该问题;
  • 使用 curl -vI 可观察到 TLS1.3/ALPN 阶段卡死;
  • 切换为 TLS1.2 后下载恢复正常。

# 三、尝试过的方案 失败案例

我们曾经尝试通过 git config 针对 github.com 强制使用 HTTP/1.1:

git config --global http.https://github.com/.version HTTP/1.1
1

局限性

该方法只对 git 协议 有效。 对于 curl / phantomjs / npm 等依赖下载,仍会失败,无法彻底解决。

# 四、根治方案 —— 系统全局强制 TLS1.2 推荐

为避免逐个依赖单独处理,可以在 系统层面禁用 TLS1.3,统一强制使用 TLS1.2。 以下脚本适用于 Kylin V10 / RHEL8,支持幂等执行。

    #!/usr/bin/env bash
    # 强制 OpenSSL 全局使用 TLS1.2 (禁用 TLS1.3),幂等脚本
    # 适配 Kylin V10 / RHEL8 系环境
    
    set -euo pipefail
    
    CONF_FILE="/etc/pki/tls/openssl.cnf"
    BACKUP_FILE="${CONF_FILE}.bak.$(date +%F-%H%M)"
    
    # 检查配置文件是否存在
    if [[ ! -f "$CONF_FILE" ]]; then
      echo "❌ 未找到 $CONF_FILE,退出。"
      exit 1
    fi
    
    # 如果已经有 openssl_conf = default_conf,就认为已经改过
    if grep -q '^openssl_conf *= *default_conf' "$CONF_FILE"; then
      echo "✅ 已经配置过 openssl_conf,不需要重复修改。"
    else
      echo "🔧 备份原文件到 $BACKUP_FILE"
      cp -av "$CONF_FILE" "$BACKUP_FILE"
    
      echo "🔧 追加 TLS1.2 配置到 $CONF_FILE"
      cat <<'EOF' | cat - "$CONF_FILE" > "${CONF_FILE}.new" && mv "${CONF_FILE}.new" "$CONF_FILE"
    openssl_conf = default_conf
    
    [default_conf]
    ssl_conf = ssl_sect
    
    [ssl_sect]
    system_default = system_default_sect
    
    [system_default_sect]
    MinProtocol = TLSv1.2
    MaxProtocol = TLSv1.2
    
    EOF
      echo "✅ 配置已写入。"
    fi
    
    # 验证 openssl 是否加载 TLS1.2
    echo "🔍 验证 OpenSSL 协议版本..."
    openssl s_client -connect pypi.org:443 -servername pypi.org </dev/null 2>&1 | grep Protocol || true
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    // Make sure to add code blocks to your code group

    下面可以看到生效结果

    image-20250928103421150

    # 五、验证步骤 必须执行

    1. 验证 OpenSSL 协议版本:

      openssl s_client -connect github.com:443 </dev/null 2>&1 | grep Protocol
      
      1

      预期输出:

      Protocol  : TLSv1.2
      
      1
    2. 再次执行 bower install 或 mvn clean package,依赖应能正常下载。

    # 六、方案对比与结论

    方案 适用范围 优点 缺点
    git config 降级 HTTP/1.1 仅 git 简单、快速 无法覆盖 curl/npm
    系统全局 TLS1.2 全局 一次解决、覆盖所有工具链 需修改系统配置文件

    最终结论: 全局禁用 TLS1.3,强制 TLS1.2,是在 Kylin V10 环境下编译 Ambari 的最优解,能够彻底解决依赖下载失败问题。

    #Ambari#Kylin V10#组件兼容性#运维排查#TLS协议#日志分析
    解决-增加系统支持范围(四)

    ← 解决-增加系统支持范围(四)

    最近更新
    01
    Ambari开启Kerberos认证加密类型错误 Kylin V10
    11-05
    02
    KERBEROS SERVICE CHECK 报错
    11-04
    03
    Test Kerberos Client报错:Failed to kinit
    11-04
    更多文章>
    Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式