sos の 作業メモ

プログラミングや英会話学習、マイルや旅行、日常生活など。最近はWebFormなASP.NETのお守りがお仕事です。

日々の生活にhappyをプラスする|ハピタス Gポイント

NSStreamでクライアントとしてTCPソケット通信を行う おまけ TLSに対応

その3のおまけ

プレーンな通信ができるようになったので、いよいよ次の段階、TLS(むかしはSSLって呼んでました)で通信できるように改造しました。

といっても、ROOT証明書がiOS側に組み込まれているサーバーに対する、クライアント認証なしの普通の通信だけですけど…

クライアント認証とか勝手サーバー証明書に対応するとかには、Securityフレームワークの力を借りて、いろいろとやらないといけないのですが、今はそこまで必要としていませんのでパス。 (Javaでの実装経験はありますが、調べるのがめんどくさい…)

で、やり方は至ってかんたん。

NSInputStreamをopenする前に、SSLのLevelをセットしてやるだけ。

[_readStream setProperty:NSStreamSocketSecurityLevelNegotiatedSSL forKey:NSStreamSocketSecurityLevelKey];

こう書いてやれば、サーバーとiOSが使える中で一番強力なレベルが設定されます。 (関係ありませんが、TLSのネゴシエートがどんな風に行われるかを調べるとなかなか面白いですよ。)

ということで、一連のソケット通信の記事はおしまい。