コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

curlでクライアント証明書を使ってJSONをPOSTする

複合事例をあえて書いて利用するオプションを説明する。

環境

$ curl --version
curl 7.54.0 (x86_64-apple-darwin18.0) libcurl/7.54.0 LibreSSL/2.6.5 zlib/1.2.11 nghttp2/1.24.1
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz HTTP2 UnixSockets HTTPS-proxy

オプション

オプション指定方法 効果
-H, --header ヘッダを指定する。複数ある場合はその分だけ記述しても問題ない
-d, --data この後の文字の内容をPOST送信する。
--cert クライアント証明書を使うときのファイルパスを指定する
--key クライアント証明書で鍵となるファイルパスを指定する
-X , --request 利用するHTTPメソッドを指定する。 -d を使うと勝手にPOSTリクエストになるので、特異なケース以外は利用不要
-v , -verbose 通信の詳しい状況を表示します。主にデバッグ用途で使われる。

JSONのファイルをPOSTする場合

curl -H "Accept: application/json" -H "Content-type: application/json" -d '{"example":"example_body"}' --key ~/key.pem --cert ~/cert.pem  https://example.com

参考サイト