iOSシミュレータからローカルのASP.NET Core Web APIと通信する際の証明書
こんにちは、Xamarin.Formsマンです。 今回は、(Xamarin.)iOSとASP.NET Coreで開発を始める時に起こりがちな証明書問題の記事です。
状況
- 同じマシンでiOSアプリ、ASP.NET Coreアプリをデバッグ実行しながら並行開発。
- iOSシミュレータ上で実行されるアプリから、ローカルで実行中のWeb APIへの通信が失敗する。
Info.prist
で一時的にATS(App Transport Security)を無効化しても回避できない。default TLS Trust evaluation failed
などのエラーメッセージが出力されている。
原因
- ASP.NET Coreアプリで使用される開発用のHTTPS証明書がiOSシミュレータに信頼されていない。(自己署名証明書なので)
対処
iOSシミュレータにASP.NET Coreの開発用HTTPS証明書をインストールします。
開発用証明書はキーチェーンアクセスから"localhost"で証明書を検索すると見つかります。(画像では何故か同じ証明書が2つヒットしてます) これをデスクトップにドラッグ&ドロップして.cerファイルを書き出します。
続いて、.cerファイルをiOSシミュレータのウィンドウにドラッグ&ドロップすればインストール完了です。
最後に
Xamarinを選択してモバイルアプリとバックエンドを両方C#で開発しようするときに躓きそうな環境構築問題の対処法でした。 新しく開発環境をセットアップする時や、iOSシミュレータが更新された時に同様の問題が発生したら思い出していただけると幸いです。
関連リンク
フォローしませんか?
お気軽にご依頼・ご相談ください