イプシロンのクレジットカード決済を導入しているが、セキュリティ向上のため来年の5月くらいからのTLS 1.2通信へと完全に移行するとの連絡あった。これはイプシロンに限らず業界全体の流れのよう。
イプシロンからの案内では
「弊社システムのSSLサーバ証明書と中間証明書をSHA-1からSHA-2対応のものへ切り替え」
「弊社システムの暗号化通信にてSSL3.0・TLS 1.0・TLS 1.1を無効化し、TLS 1.2のみ有効化」
とのこと。
この辺は専門外のため、正直詳しいことはわからないし、知る必要もないのだけれど、とにかく何らかの対応をしなくてはならないとのこと。
事前にテスト環境でのテスト決済が推奨されていたので実際に試したところ、当方のエックスサーバーでは決済画面に行くとエラーのような画面となり、正常に決済が行えない問題が発生。
当方ではエックスサーバーの共有SSLを使用しています。
原因が分からず探っていくとOpenSSLのバージョンが1.0.1でなければいけないが、PHP5.3.3では「0.9.8」のため対応できていない様子。
そこでサーバー管理画面にてPHP5.6にバージョアップしてみるとOpenSSLのバージョンが1.0.1となり、テスト決済もあっさり成功し、無事解決した。
ネットでもこれ系の情報が少なく、またその性質上、おそらく困っている方が多いと思われるため、誰かの役に立てば幸いです。
ただし、PHPのバージョン変更はサイト全体に影響するものであり、当然リスクも伴うため、そのサイトにその他のシステムが入っている場合には、事前に十分に確認する必要があると思います。
ただPHP5.3→PHP5.6であれば互換性もそこそこあるので問題ないことが多いと思われる。
最悪の場合、決済関連のページのみ他のサーバーに設置するなども検討してもいいと思います。