Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 让Ansible信任macOS和CentOS上的我的自定义CA_Python_Python 3.x_Ssl_Ansible_Urllib - Fatal编程技术网

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

Python 让Ansible信任macOS和CentOS上的我的自定义CA,python,python-3.x,ssl,ansible,urllib,Python,Python 3.x,Ssl,Ansible,Urllib,我正在设置一个可通过HTTPS访问的web服务,它使用内部CA。我希望Ansible验证证书,因此我需要使其信任此CA。我正在macOS和CentOS上运行Ansible,因此我需要使其信任这两种类型操作系统上的自定义CA 我尝试将我的CA证书放入/etc/ssl/certs/中,并使用blockinfle将其添加到/usr/local/etc/openssl/cert.pem,但这些都不起作用。我更喜欢一种易于清理的方法,比如将CA文件添加到目录中,而不是将其附加到文件中 我正在运行Ansib

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

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

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

有什么想法吗?谢谢

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

  • 将扩展名为
    .pem
    的CA证书文件添加到
    /etc/pki/CA trust/source/anchors/
    文件夹中
  • 以root用户身份运行命令
    更新ca证书
证书现在应该由ansible(以及使用openssl的所有其他环境/软件,如curl)识别

如果仍然出现验证错误,可以检查openssl使用的默认路径

 openssl version -a | grep -i openssldir

在此目录中,应该有一个符号链接
cert.pem
,指向
/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
(即由
更新ca-certificates
更新的ca-bundle文件)。如果缺少此项,请尝试创建它。

通常需要使用自定义CA的路径设置不少于3个环境变量。查看它们的确切名称。还要确保它们是在运行http请求的机器上设置的

是的,自从我被困在macOS上后,我还没有接触过CentOS,但这将是我的第一次尝试,因为这是在CentOS上添加自定义CA的标准方法。但感谢您确认这对Ansible有效。现在我只需要想办法在macOS上做到这一点。。。