脳みそスワップアウト

揮発性なもので。おもにPHPのこととか。

TLSバージョンを指定して接続確認

会社のiOSアプリ開発チームより、
ガラケー対応の外部の古いウェブサイトにアプリからHTTPS接続できないとのこと。

詳しく聞いてみると、iOSのバージョン10未満で発生していて、
TLS1.2 → 1.1 → 1.0 のfallbackする箇所がうまく動いてなさそうに見える。
対象サーバが TLS1.0 なら利用可能であることを確認したい。

これは openssl を使って、TLSバージョンを指定して接続すればわかる。

openssl s_client -connect {HOSTNAME}:443 -ssl2
openssl s_client -connect {HOSTNAME}:443 -ssl3
openssl s_client -connect {HOSTNAME}:443 -tls1
openssl s_client -connect {HOSTNAME}:443 -tls1_1
openssl s_client -connect {HOSTNAME}:443 -tls1_2

諸々と情報が出力されるが、成功したかどうかなら終了ステータスの確認でOK。
異常終了なら終了ステータスが 0 以外で、即時終了する。
成功した場合は入力を待つので、「GET /」とでも打ってステータス 0 で終了すればよい。

最終的には、利用するTLSの上限/下限とも TLS1.0 になるよう指定することで解決したとのこと。

TLS1.2 未満は POODLE の脆弱性があるものの、ガラケー対応システムなら仕方のないことだろう。
ガラケーかセキュリティか、どちらかを捨てなければならない。
ふつうはガラケーだろうけども。