让Ansible信任我在macOS和CentOS上的自定义CA



我正在设置一个可以通过HTTPS访问的web服务,它使用内部CA。我希望Ansible验证证书,因此我需要让它信任这个CA。我在macOS和CentOS上都运行Ansible,因此我需要让它在这两种类型的操作系统上都信任我的自定义CA。

我曾尝试将我的CA证书放入/etc/ssl/certs/中,并使用blockinfile将其添加到/usr/local/etc/openssl/cert.pem中,但这些都不起作用。我更喜欢一种易于清理的方式,比如将CA文件添加到目录中,而不是将其附加到文件中。

我正在运行Ansible 2.8,并且已经发现它使用urllib来发出HTTP请求。但我找不到任何关于它在不同操作系统上查找CA证书的信息。

有什么想法吗?谢谢

Centos的部分答案(其他发行版使用不同的路径/二进制文件,我不知道如何在macintosh上管理它(。

  • 将扩展名为.pem的CA证书文件添加到/etc/pki/ca-trust/source/anchors/文件夹
  • 以root用户身份运行命令update-ca-certificates

证书现在应该由ansible(以及所有其他使用openssl的环境/软件,如curl(识别

如果您仍然收到验证错误,您可以检查openssl 使用的默认路径是什么

openssl version -a | grep -i openssldir

在这个目录中,应该有一个指向/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem的符号链接cert.pem(即update-ca-certificates更新的CA Bundle文件(。如果这是丢失的,尝试创建它。

通常有不少于3个环境变量需要设置自定义CA的路径https://github.com/tox-dev/tox/pull/1439他们的确切名字。还要确保在运行http请求的机器上设置了它们!!

最新更新