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 通信が行えるようになります。