私は実際に書かれていることを記述するのに問題があります。証明書を使用してボールトサービスに認証しようとしています。 documentationは言う:カールの実装を理解する
APIを介して
ログイン用のエンドポイントが/ログインです。クライアントは単に のTLS証明書に接続し、ログインエンドポイントがヒットした場合、 バックエンドは、 と一致する信頼できる証明書があるかどうかを判断します。オプションで、認証するための単一の 証明書ロールを指定することもできます。今
$ curl --cacert ca.pem --cert cert.pem --key key.pem -d name=web \ $VAULT_ADDR/v1/auth/cert/login -XPOST
ノードのIP:私はに認証するポートだから次は私がリモートサーバーからやっているものです17.2.24.13:8200
です。
openssl s_client -showcerts -connect 17.2.24.13:8200
これは、セクションが含まれている巨大な出力につながる::
-----BEGIN CERTIFICATE-----
XXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX
-----END CERTIFICATE-----
は今、私は、これはVaultが必要証明書であると信じています。
だから私は、今私が認証するつもりですvault.cer
を使用してvault.cer
ファイル
に上記の出力を書き込みます。そこで、以下のコマンドを実行しています。私は取得しています
curl --cert vault.crt https://17.2.24.13:8200/v1/auth/cert/login -XPOST
が、エラーは次のとおりです。
curl: (60) Certificate key usage inadequate for attempted operation.
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.
私は-k
フラグを追加した場合、私は以下のエラーを取得します。
# curl -k --cert vault.crt https://17.2.24.13:8200/v1/auth/cert/login -XPOST
{"errors":["client certificate must be supplied"]}
だから、このシナリオでは本当に何が欠けているのか本当に混乱しています。