【发布时间】:2017-12-19 15:38:48
【问题描述】:
我正在尝试做相当于:
curl -X POST --data <json> --key <path to key> --cert <path to cert> --cacert <path to cacert> --header "Content-Type: application/json" <url>
在一个可靠的游戏中。根据http://docs.ansible.com/ansible/latest/uri_module.html 的文档,有密钥、证书、X、标头和数据的等效项,但我还没有找到传递证书颁发机构文件的方法。
我试过了:
environment:
CURL_CA_BUNDLE: <path to cacert>
uri:
url: <url>
client_cert: <path to cert>
client_key: <path to key>
body: <json>
method: POST
body_format: json
由于 man curl 指定它将读取环境变量CURL_CA_BUNDLE。我也试过:
uri:
url: <url>
client_cert: <path to cert>
client_key: <path to key>
body: <json>
method: POST
body_format: json
others: --cacert <path to cacert>
这两种方法都没有奏效。如果没有 cacert,我会收到错误消息:“无法验证 <url> 的 SSL 证书。请确保您的托管系统安装了有效的 CA 证书...”。我知道如果我传入validate_certs=False,那么该方法将起作用,并且我知道它可以通过带有curl的命令行起作用。
是否有其他选项可以传入 URI 模块来绕过此问题?
【问题讨论】: