スポンサーリンク

PHP5.5系にてPDOでSSLを使うとサーバー証明書検証不備の脆弱性になる

PHP5.6系PHP7.0系ではPDOにてSSHトンネリングとSSLは同時に使えない」に書いた事ではあるのですが、視点を変えてもう一度書いてみます。

「PHP PDO RDS SSL」で検索するとトップに出てくる「PHPからRDSのMySQLに対してSSL接続する」を参考にしてCA証明書を取得し、PDOを使ってRDSなMySQLに接続するとPHP5.5系の場合はサーバー証明書の検証をしないため下図の上2組のように接続できてしまいます。ところが、PHP5.6系以降だとサーバー証明書の検証を行うため下図の下2組のように接続できません。

実は、先のサイトのリンク先にあるCA証明書は有効期限切れなんですね。なので、新しいものに更新しないといけないのです。新しいものは「MySQL DB インスタンスで SSL を使用する」に記載されているものとなりますので、こちらを利用するのが正解となります。

そういう状況ですので、証明書が更新される前にPHP5.5系で作成されたプログラムを稼働させている方々の中には、気づかずに古い証明書のまま接続し続けているところもあるのではないかと思います。それは正常な状態とは言えませんので、これを機会に新しい証明書に置き換えましょう。

それにしてもAmazon Web Servicesさん、なんで古い証明書を削除しないまま置いているのでしょうか?

コメント

タイトルとURLをコピーしました