flask自己署名証明書を使用して実行中のアプリケーションがあります。次を使用してcurl要求を送信できます。
curl -v -k -H "Content-Type: application/json" -d '{"data":"value1","key":"value2"}' https://<server_ip>:<port>
詳細ログは、すべてがうまくいったことを示しています。
-k(--insecure)オプションの使用を避け、代わりにcurlが使用できる.pemファイルを指定したかったのです。 curlのmanページを見ると、--certオプションを使用してこれを実行できることがわかりました。そこで、これを使用して.pemファイルを作成しました。
openssl rsa -in server.key -text > private.pem
Private.pemファイルを使用すると、CURLから次のエラーがスローされます。
curl: (58) unable to use client certificate (no key found or wrong pass phrase?)
助言がありますか? -または、これは適切に署名された証明書でのみ可能ですか?
Tnx
これはこの質問の別のバージョンです: opensslを使用してサーバーから証明書を取得する
またはもっと率直に言って:
curl --cert の使用は間違っています。これはクライアント証明書用です。
まず、サーバーが使用している証明書を取得します。
$ echo quit | openssl s_client -showcerts -servername server -connect server:443 > cacert.pem
(-servername
は、適切な仮想サーバーの証明書を取得するためにSNIに必要です。
次に、curlコマンドラインでそのセットを使用して、以降の操作でサーバーを検証します。
$ curl --cacert cacert.pem https://server/ [and the rest]