- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
-
API参考
- 使用前必读
- API概览
- 如何调用API
-
API
-
V4
-
WebHook
- 获取仓库下指定Webhook的日志列表
- 获取仓库下指定Webhook的指定日志详情
- 获取项目下指定Webhook的日志列表
- 获取项目下指定Webhook的指定日志详情
- 获取代码组下指定Webhook的日志列表
- 获取代码组下指定Webhook的指定日志详情
- 获取代码组下Webhook列表
- 添加代码组下Webhook
- 获取代码组下单个Webhook数据
- 更新代码组下单个Webhook数据
- 删除代码组下单个Webhook
- 获取项目下Webhook列表
- 添加项目下Webhook
- 获取项目下单个Webhook数据
- 更新项目下单个Webhook数据
- 删除项目下单个Webhook
- 获取仓库下Webhook列表
- 添加仓库下Webhook
- 获取仓库下单个Webhook数据
- 更新仓库下单个Webhook数据
- 删除仓库下单个Webhook
- ProtectedTag
- FilePushPermission
- Label
-
Repository
- 获取项目下当前用户有管理权限的代码组列表
- 关联仓库与成员组
- 锁定仓库
- 解锁仓库
- 获取仓库ip白名单
- 添加仓库ip白名单
- 修改仓库ip白名单
- 删除仓库ip白名单
- 仓库下载
- 获取仓库指定分支或者标签子模块列表
- 创建子模块
- 获取文件内容
- 获取仓库指定分支的提交统计信息
- 获取仓库默认分支语言统计
- 获取仓库动态
- 查看分支文件列表
- 分支、tags、提交对比
- 按行数查询提交文件内容
- 获取仓库通知设置
- 修改仓库通知设置
- 获取仓库通知设置启用状态
- 获取仓库统计任务状态
- 删除仓库部署秘钥
- 启动仓库镜像同步
- 获取仓库镜像详情
- 查看仓库继承设置源
- 创建指定分支下的目录
- 获取仓库贡献者列表
- 查看仓库继承设置
- 修改仓库继承设置
- 将普通仓库与远程镜像关联
- 查看仓库通用策略
- 修改仓库通用策略
- 查看仓库通用提交规则
- 查看仓库提交规则
- 查看当前用户仓库导入任务列表
- 获取仓库最近推送事件
- 获取仓库统计摘要
- 获取CR仓库用户分支或标签级权限
- 获取仓库水印设置
- 更新仓库水印设置
- 获取仓库详情
- 获取当前登录用户仓库
- 获取仓库Fork列表
- 模板仓列表
- ProtectedBranch
- Project
- ThirdParty
- Group
- Permission
- Tenant
-
MergeRequest
- 获取合并请求关联的最新流水线
- 获取合并请求打分
- 更新合并请求打分
- 删除合并请求打分
- 获取MR详情
- 更新合并请求
- 获取合并请求的可合入状态
- 合入合并请求
- 获取仓库MR列表
- 创建合并请求
- 获取合并请求审核设置列表
- 创建合并请求审核设置
- 更新合并请求审核设置
- 删除合并请求审核配置
- 获取合并请求commit列表
- 获取合并请求文件变更列表树
- 获取合并请求文件变更列表
- 导入合并请求
- 获取分支代码冲突
- 更新仓库合并请求设置
- 获取仓库合并请求设置
- 获取代码组合并请求设置
- 获取项目合并请求设置
- 创建合并请求模板
- 获取合并请求模板列表
- 获取检视意见模板列表
- 更新合并请求模板
- 获取单个合并请求模板
- 删除合并请求模板
- 获取代码组合并请求审核设置列表
- 创建代码组合并请求审核设置
- 获取项目合并请求审核设置列表
- 创建项目合并请求审核设置
- 更新代码组合并请求审核设置
- 删除代码组合并请求审核配置
- 更新项目合并请求审核设置
- 删除项目合并请求审核配置
- 获取代码组审核人或合并人
- 获取项目审核人或合并人
- 获取代码组检视人
- 获取项目检视人
- 获取合并请求审核人列表
- 获取合并请求检视人列表
- 更新合并请求的审核人列表
- 更新合并请求的检视人列表
- 审核合并请求
- 检视合并请求
- 获取可选的合并请求检视人
- 变基合并请求
- 在线解决合并请求冲突
- 获取所有的冲突文件
- 获取合并请求的平均评价
- 获取合并请求文件变更页单个文件下的检视意见
- Discussion
- Commit
- Member
- Branch
- Tag
- File
- User
- Pipeline
- MergeRequestList
- MergeRequestParticipants
-
WebHook
- SSH Key
-
Repository
- 获取仓库统计数据
- 获取一个仓库下特定分支的图片文件
- 修改被流水线引用的仓库状态
- 判断用户是否有仓库的管理员权限
- 设置仓库是公开状态还是私有状态
- 获取一个仓库下特定分支指定文件内容
- 创建仓库
- 根据仓库名组名获取仓库短id,用以拼接与commitid对应提交详情页面url
- 根据组名和仓库名查询某仓库某分支对应的提交
- 根据仓库id查询仓库某分支对应的提交,提供更多可选参数
- 添加部署密钥
- 删除仓库部署密钥
- 获取仓库上一次的提交统计信息
- 仓库统计
- 删除仓库
- 查看仓库的创建状态
- 获取代码提交行数
- 删除保护分支
- 批量删除保护分支
- 新建保护tag
- 删除保护tag
- 获取仓库ip白名单
- 添加仓库ip白名单
- 修改仓库ip白名单
- 删除仓库ip白名单
- 关联仓库与成员组
- 根据仓库短ID锁定仓库
- 根据仓库短ID解锁仓库
- 审核合并请求
- 获取关联工作项信息
- 根据仓库短ID和合并请求短ID获取检视人信息
- 获取变更文件列表
- Tenant
- Group
- V2Project
- RepoMember
- Commit
- File
- User
- Webhook
- Project
- Discussion
-
V4
- 应用示例
- 附录
- 历史API
-
常见问题
- 认证鉴权问题
- 成员权限问题
-
代码上传下载问题
- 从本地推送代码仓到CodeArts Repo时,报错"Error: Deny by project hooks setting 'default': message of commit"
- 用户推送二进制文件到CodeArts Repo失败
- 执行git push 命令时,报错'origin' does not appear to be a git repository...
- 在CentOS系统下使用HTTPS协议克隆代码时,报错"The requested URL returned error: 401"
- 使用git pull拉取CodeArts Repo的代码失败,报错"Merge branch 'master' of https://test.com Please Enter a commit"
- push文件时客户端提示连接断开
- fatal: refusing to merge unrelated histories
- 如何阻止涉密文件被推送到CodeArts Repo代码仓库
- 仓库迁移问题
- 合并请求问题
- Fork同步问题
- 仓库容量问题
- 常见问题汇总
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
TLS协议握手失败并报错"ssl handshake failure"
问题现象
本地执行如下命令,与指定服务器建立TLS1.0连接并获取其证书信息。
openssl s_client -connect test.com:443 -tls1
会出现如下报错信息:
CONNECTED(00000003)
140155533838224:error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:s3_pkt.c:1493:SSL alert number 70
140155533838224:error:1409E0E5:SSL routines:ssl3_write_bytes:ssl handshake failure:s3_pkt.c:659:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
Start Time: 1720443876
Timeout : 7200 (sec)
Verify return code: 0 (ok)
---
原因分析
CodeArts Repo当前支持TLS1.2、TLS1.3协议版本。
处理方法
- 在Git Bash客户端执行如下命令,查看您的Git版本。
git --version
- 如果您的Git版本低于2.6.0,请将您本地的Git客户端升级到最新版本,最新版本的Git客户端默认支持TLSv1.2协议。如果您的Git版本不低于2.6.0,您也可以使用如下命令指定TLS协议的版本。
openssl s_client -connect test.com:443 -tls1_2
绝大多数流量不受此变化的影响。预计会有一些客户受到影响。大多数客户端都可以更新以使用TLSv1.2。
Git-Credential-Manager-for-Windows < v1.14.0
Git-Credential-Manager-for-Windows < v1.14.0不支持TLSv1.2。
可以通过更新到最新版Git客户端来解决,最新版版本的GitBash自带Git-Credential-Manager功能,只需要在安装时勾选即可。
Git on Red Hat 5,<6.8和<7.2
Red Hat 5,6和7随Git客户端一起提供,不支持TLSv1.2。这可以通过分别更新到版本6.8和7.2(或更高版本)来解决。Red Hat 5没有支持TLSv1.2的点发行版。建议Red Hat 5的用户升级到更新版本的操作系统。
Java发布
如Oracle博客文章中所述,默认情况下,TLSv1用于JDK8之前的JDK版本。JDK8更改了此行为,默认为TLSv1.2。在旧版本的JDK上运行的任何客户端(例如Eclipse自带的JGit这样的流行客户端)都会受到影响。这可以通过更新到JDK> = 8或明确选择在JDK 7中的TLSv1.2来解决(查看https.protocols JSSE调整参数)。不幸的是,JDK <= 6的版本不支持TLSv1.2。建议JDK <= 6的用户升级到较新版本的JDK。
Visual Studio
Visual Studio附带了特定版本的Git for Windows和Git Credential Manager for Windows(GCM)。 Microsoft已更新Visual Studio 2017的最新版本以与TLSv1.2 Git服务器配合使用。建议Visual Studio用户通过单击产品内通知标志或直接从IDE检查更新来升级到最新版本。 Microsoft已在Visual Studio开发人员社区支持论坛上提供了其他指导。