{{< details >}}

  • Tier: 基础版, 专业版, 旗舰版
  • Offering: JihuLab.com, 私有化部署

{{< /details >}}

极狐GitLab 优先考虑用户与我们平台之间数据传输的安全性,采用传输层安全性(TLS)来保护信息在互联网上的传输。

随着网络安全威胁的不断演变,极狐GitLab 始终致力于保持最高的安全标准。我们定期更新 TLS 支持,以确保与极狐GitLab 服务的所有通信都使用最安全和最新的加密方法进行保护。

本文档概述了极狐GitLab 目前的 TLS 支持,包括我们使用的版本和密码套件,以确保您的数据安全。

支持的协议

极狐GitLab 支持 TLS 1.2 及更高版本的安全通信。这意味着 TLS 1.2 和 TLS 1.3 完全支持并推荐用于极狐GitLab。

由于已知的安全漏洞,旧协议如 TLS 1.1、TLS 1.0 和所有版本的 SSL 不受支持。通过强制使用 TLS 1.2 及更高版本,极狐GitLab 确保所有数据传输和与平台的交互的高安全性。

支持的密码套件

极狐GitLab 支持以下密码套件和协议版本:

协议版本 密码套件 等级
TLSv1.3 TLS_AKE_WITH_AES_128_GCM_SHA256 A
TLSv1.3 TLS_AKE_WITH_AES_256_GCM_SHA384 A
TLSv1.3 TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 A
TLSv1.2 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 A
TLSv1.2 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 A
TLSv1.2 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256-draft A
TLSv1.2 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA A
TLSv1.2 TLS_RSA_WITH_AES_128_GCM_SHA256 A
TLSv1.2 TLS_RSA_WITH_AES_128_CBC_SHA A
TLSv1.2 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 A
TLSv1.2 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA A
TLSv1.2 TLS_RSA_WITH_AES_256_GCM_SHA384 A
TLSv1.2 TLS_RSA_WITH_AES_256_CBC_SHA A
TLSv1.2 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 A
TLSv1.2 TLS_RSA_WITH_AES_128_CBC_SHA256 A
TLSv1.2 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 A
TLSv1.2 TLS_RSA_WITH_AES_256_CBC_SHA256 A

证书要求

OpenSSL 3 将默认安全级别从级别 1 提升到 2,将安全性提高到 112 位。因此,长度短于 2048 位的 RSA、DSA 和 DH 密钥以及短于 224 位的 ECC 密钥被禁止。极狐GitLab 将无法连接使用不足位数证书签名的服务,并显示 certificate key too weak 错误信息。

我们强烈建议使用至少 128 位的安全性。这意味着使用至少 3072 位的 RSA、DSA 和 DH 密钥,以及长度超过 256 位的 ECC 密钥。

密钥类型 密钥长度(位) 状态
RSA 1024 禁止
RSA 2048 支持
RSA 3072 推荐
RSA 4096 推荐
DSA 1024 禁止
DSA 2048 支持
DSA 3072 推荐
ECC 192 禁止
ECC 224 支持
ECC 256 推荐
ECC 384 推荐

OpenSSL 版本和 TLS 要求

极狐GitLab 17.7 及更高版本使用 OpenSSL 版本 3。所有与 Linux 软件包一起发布的组件都兼容 OpenSSL 3。然而,在升级到极狐GitLab 17.7 之前,请使用 OpenSSL 3 指南来识别和评估您的外部集成的兼容性。

绕过 OpenSSL 3 的 close_notify 要求

{{< history >}}

  • 引入于极狐GitLab 17.10,并后向兼容与 17.9.1、17.8.4 和 17.7.6。

{{< /history >}}

根据 RFC 52460,SSL 连接应通过 close_notify 消息终止。OpenSSL 3 将其作为一项安全措施来强制执行。一些服务(例如第三方 S3 提供商)可能会由于此强制执行而报告 unexpected eof while reading 错误。

可以通过将 SSL_IGNORE_UNEXPECTED_EOF 环境变量 设置为 true 来禁用此要求。这仅作为临时解决方案。禁用此功能可能会引入截断攻击的安全漏洞。