mBaaSで最も厄介なのは署名の生成処理で、それが正しく作られているかどうか、ちゃんとしたレスポンスが返ってきているのかどうかはネットワークアクセスをデバッグしないと分かりません。しかしmBaaSはHTTPSアクセスなので、プロキシを通すとエラーになってしまいます。
そこでCharlesを使って証明書エラーを回避する方法がありましたので紹介します。なお試したのはmacOSです。Windowsでもできるとは思いますが、コマンドが異なるはずなのでご注意ください。
通常のアクセス
プロキシを使ってHTTPSアクセスを行うと以下のエラーメッセージが返ってきます。
You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.
証明書をダウンロードする
CharlesのHelpメニューの中にある SSL Proxying > Save Charles Root Certificate を選択します。このファイルはデスクトップにダウンロードされます。
証明書をインストールする
そこで以下のコマンドを実行します。これはJREがインストールされている必要があります。
sudo keytool -import \ -alias charles \ -file ~/Desktop/charles-ssl-proxying-certificate.crt \ -keystore $JAVA_HOME/jre/lib/security/cacerts \ -storepass changeit
公式サイトのSSL Certificates • Charles Web Debugging Proxyにあるのですが、ドキュメントではファイル名が違ったり、JAVA_HOMEの$がないのでエラーになってしまいます。
これで準備完了です。
ネットワークアクセスする
設定後にJavaからmBaaSにアクセスすると、問題なくリクエスト内容やレスポンスが確認できるようになります。
これでデバッグ作業が捗ることでしょう。
まとめ
CharlesはmBaaSをAPIベースで利用する際には欠かせないツールです。ぜひお試しください!