はじめに
現在APIのテストに Postman を利用しているのですが、担当しているプロダクトにはクライアント証明書(PFX形式)が必須となっています。
そのため、「Postman」とその CLI版の「Postman CLI」での クライアント証明書 (PFX形式) の使い方をそれぞれ調べたのでここで紹介します。
本投稿で書かかないこと
- Postman/Postman CLI のインストール方法や基本的な使い方
- PEM形式のクライアント証明書の使い方
準備
事前に以下のものを確認、用意しておきます。
- テストしたい Host (endpoint) の URL
- Host に対応した PFX file (PFX形式のクライアント証明書) 本体
- PFX file の Path
- PFX file の Passphrase
Postman (執筆時 Ver. 10.6.7) の場合
設定画面からクライアント証明書を追加することができます。
手順
- Preference (SETTINGS) を開く
- Certificates タブを開く
- Add Certificate をクリックする
- Host , PFX file , Passphrase をそれぞれ入力、選択する
- Add をクリックすると一覧に追加されて完了
GUI版のポイント
- 複数の Host に対応できる
環境の異なる Host 毎にクライアント証明書を登録しておけば、リクエスト時の URL に応じて証明書を読み込んでくれる - 現在は編集ができない
間違えて登録した場合は、削除(Remove)して改めて追加する必要がある
Postman CLI (執筆時 Ver. 1.0.8) の場合
JSON形式の設定ファイルを作り、実行時に --ssl-client-cert-list
オプションで渡してあげます。
手順
-
次のようなフォーマットのJSONファイルを用意します
clientCertList.json[ { "name": "(任意の名前)", "matches": ["(host の URL)/*"], "pfx": { "src": "(PFX file の Path)" }, "passphrase": "(PFX file の Passphrase)" }, { "name": "hoge.example", "matches": ["https://hoge.example.com/*"], "pfx": { "src": "/Users/hoge/client-certificates/hoge_example.pfx" }, "passphrase": "hogeexample" } ]
-
実行時に
--ssl-client-cert-list
で作成したJSONファイルを渡すpostman collection run (file path or UID) --ssl-client-cert-list clientCertList.json
CLI版のポイント
- 複数の Host に対応できる
JSON に環境の異なる Host 毎にクライアント証明書を書いておけば、リクエスト時の URL に応じてマッチした証明書を読み込んでくれる
まとめ
- Postman は GUI でも CLI でもクライアント証明書が使える
- 適切に登録・設定することで、複数の HOST にも柔軟に対応できる
- GUI は編集ができないのでやや不便