iPhone

iPhoneでオレオレ証明を使ったSSL通信を行えるようにする

More than 5 years have passed since last update.

iPhoneでは標準ではオレオレ証明でのSSL通信はできませんが、

NSURLRequestのprivateメソッドallowsAnyHTTPSCertificateForHost:をオーバーライドすることで対応
NSURLRequest+SSL.hと NSURLRequest+SSL.mのカテゴリを用意します。

NSURLRequest+SSL.m

@implementation NSURLRequest(SSL)
//SSLの自己証明書の場合に通信できないのを防ぐ。Privateなメソッドなのでリリースしてはいけない
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host {
return YES;
}
@end

PrivateなメソッドなのでRelaseビルドに含めないように注意してください。

NSURLRequestのメソッドなのでGTMHttpFetcherも問題なくアクセスできるようになりました。