9. HTTPS通信について¶
9.1. 自己署名証明書¶
iOS SDK の通信は常に HTTPS で行われます。
サーバ側には正規の証明書が設置されている必要があります。 自己署名証明書など、正規の証明書でない場合は通信エラーになります。
テスト時など自己署名証明書を使用せざるを得ない場合は、以下の迂回方法があります。
9.1.1. 1. 証明書チェックを迂回する方法¶
警告
この方法はHTTPSのセキュリティ機能を無効化してしまうため、推奨できる方法ではありません。 デバッグ時にのみ使用して下さい。 本番運用時には絶対に使用しないでください。
以下のコードをアプリ内に実装することで、サーバ証明書の検証を迂回できます。
@implementation NSURLRequest (IgnoreSSL)
+(BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host {
// ホスト名検証を行う場合はここに別途チェックを入れること
// YES を返却すると、証明書を受け入れる
return YES;
}
@end
警告
allowsAnyHTTPSCertificateForHost: は非公開 API です。 アプリを AppStore に提出する場合は、本 API の呼び出しは削除してください。 削除しないと、審査で拒絶されます。
9.1.2. 2. テストデバイスに証明書をインストールする方法¶
iPhone 構成ユーティリティを使用し、構成情報を作成します。 資格情報に証明書を登録し、デバイスにインストールすることで、 該当サーバと HTTPS 通信が行えるようになります。