使用Ansible的maven_artifact进行证书验证

时间:2019-02-28 09:07:24

标签: ansible ssl-certificate

我正在尝试从使用自签名证书的Nexus中提取一个罐子。

ansible -m maven_artifact -a "repository_url=https://<nexus_host>/repository/maven-snampshots group_id=<group_id> artifact_id=<artifact_id> dest=/tmp/jars validate_certs=yes username=admin password=admin123" -i inventory.ini env_dev

我遇到以下错误:

  

“ msg”:“无法验证XXXXXX的SSL证书。请确保   您的受管系统已安装了有效的CA证书。如果   提供网址的网站使用SNI,您需要python> = 2.7.9   受管机器(使用的python可执行文件(/ usr / bin / python)是   版本:2.6(r26:66714,2011年5月6日,15:10:21)[GCC 4.3.4   [gcc-4_3-branch修订版152973]]),也可以安装urllib3,   pyOpenSSLndg-httpsclientpyasn1 python模块来执行   python> = 2.6中的SNI验证。您可以使用validate_certs = False,如果   您无需确认服务器身份,但这是不安全的,并且   不建议。为此平台检查的路径:/ etc / ssl / certs,   / etc / pki / ca-trust / extracted / pem,/ etc / pki / tls / certs,   /usr/share/ca-certificates/cacert.org,/etc/ansible。异常味精   原为:[Errno 1] _ssl.c:482:错误:14090086:SSL   例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败。“

Chrome浏览器让我从Nexus服务器下载证书(.cer)。但是我不知道该在哪里安装。以及方式。

Nexus : OSS 3.14.0-04
Server Ansible : CentOS Linux release 7.6.1810
Client Ansible : SUSE Linux Enterprise Server 11 (x86_64)

1 个答案:

答案 0 :(得分:0)

我们获取证书的方式是使用openssl并将其指向相关站点,将其下载为.pem,然后将该.pem安装到进行调用或被调用的服务器上。

获取证书:

openssl s_client -connect  site.com:636 </dev/null 2>/dev/null  | openssl x509 -outform PEM > site.pem

将证书导入CAcerts:

sudo keytool -importcert -noprompt -alias site-`date "+%Y%m%d%H%M%S"` -file ./site.pem -keystore /usr/java/latest/lib/security/cacerts -storepass changeit