AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 877530
Accepted
techraf
techraf
Asked: 2017-10-09 18:59:27 +0800 CST2017-10-09 18:59:27 +0800 CST 2017-10-09 18:59:27 +0800 CST

AWX 调用的 Git 忽略手动安装的根 CA

  • 772

AWX安装在 CentOS 机器上。一台单独的机器 ( gitlab.techraf) 通过 HTTPS 使用由私有 CA 签名的证书为 GitLab 的 Web 界面提供服务。

剧情:

  1. 在“新”系统上,我发出命令:

    /usr/bin/git clone --origin origin https://gitlab.techraf/techraf/project.git /tmp/project
    

    并获得(预期):

    致命:无法访问“ https://gitlab.techraf/techraf/project.git/”:无法识别对等方的证书颁发者。

  2. 我在 AWX 机器上安装了根 CA 证书:

    update-ca-trust force-enable
    curl https://certificate.source/certificates/techrafCA.pem > /etc/pki/ca-trust/source/anchors/techrafCA.pem
    update-ca-trust extract
    
  3. 我重试上面的方法git clone,这次得到了正确的响应:

    克隆到“/tmp/project”...
    远程:计数对象:3,完成。
    远程:总共 3 个(增量 0),重用 0 个(增量 0)
    拆包对象:100% (3/3),完成。

    作为健全性检查,我git clone使用不同的用户帐户运行 - 在第 2 点安装根 CA 证书后没问题 - 根 CA 似乎是系统安装的。curl也接受gitlab.techraf的证书。

  4. (问题)我在 AWX 界面中定义了一个项目并尝试从 GitLab 同步它,但是我得到:

    任务 [使用 git 更新项目]
    ******************************************* *****
    致命:[本地主机]:失败!=> {“changed”:false,“cmd”:“ /usr/bin/git clone --origin origin https://gitlab.techraf/techraf/project.git /var/lib/awx/projects/_6__project”,“failed”:true,“msg”:“fatal:无法访问' https://gitlab.techraf/techraf/project.git/':无法识别对等的证书颁发者。”,“rc”:128, "stderr": "fatal: 无法访问 ' https://gitlab.techraf/techraf/project.git/': Peer 的证书颁发者无法识别。\n", "stderr_lines": ["fatal: 无法访问' https://gitlab.techraf/techraf/project.git/': Peer 的证书颁发者无法识别。"], "stdout ": "正在克隆到 '/var/lib/awx/projects/_6__project'...\n", "stdout_lines": ["正在克隆到 '/var/lib/awx/projects/_6__project'..."]}

    作为一个健全的检查,我尝试了一个来自 GitHub 的项目,并且 AWX 正确地获取了它。

    作为另一个健全性检查ansible localhost -m command -a "/usr/bin/git clone --origin origin https://gitlab.techraf/techraf/project.git /tmp/project2,我运行了另一台机器,以确保非交互式 shell 会话工作相同。在任何一种情况下,证书都被接受。


git(由 AWX/Ansible 调用)不使用已安装techrafCA.pem证书的原因可能是什么?

下一步我可以采取什么措施来解决问题?

ssl-certificate
  • 3 3 个回答
  • 7179 Views

3 个回答

  • Voted
  1. Best Answer
    Abhishek Saurabh
    2017-10-27T09:19:12+08:002017-10-27T09:19:12+08:00

    如果您在 awx_task 容器中执行相同操作,那么它可以工作!

    通过我的 AWX 设置验证。

    update-ca-trust force-enable
    curl https://certificate.source/certificates/techrafCA.pem > /etc/pki/ca-trust/source/anchors/techrafCA.pem
    update-ca-trust extract
    
    • 4
  2. VEs
    2019-08-21T05:29:22+08:002019-08-21T05:29:22+08:00

    你需要两个文件:

    1. gitconfig
        [http]
            sslCAInfo = /etc/pki/ca-trust/source/anchors/yourca.pem
    
    1. 你的ca.pem

    在任务中添加到 docker-compose.yml:

      - "./gitconfig:/etc/gitconfig"
      - "./yourca.pem:/etc/pki/ca-trust/source/anchors/yourca.pem"
    

    重新创建任务容器docker-compose up -d

    • 1
  3. xian
    2017-12-27T14:48:49+08:002017-12-27T14:48:49+08:00

    您可以在 AWX 中完全禁用 GIT 证书验证。添加AWX_TASK_ENV['GIT_SSL_NO_VERIFY'] = 'True'到 awx_task 容器并重新启动它:

    docker exec -ti awx_task vi /etc/tower/settings.py
    docker restart awx_task
    
    • 0

相关问题

  • RHEL/Apache ssl.conf 配置问题

  • IIS7 中的证书信任列表

  • SSL证书的区别?

  • 如何修复邮件服务器 SSL?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve