Posted at

HttpSocket使うときSSL証明書に関するエラー

More than 3 years have passed since last update.

CakePHPで、HttpSocketを使って、Httpsリクエストするとき、

以下のようなSSL認証のエラーが起きた場合...


[SocketException] stream_socket_client(): Peer certificate CN='aaa.com' did not match expected CN='good.aaa.com'

stream_socket_client(): Failed to enable crypto

stream_socket_client(): unable to connect to ssl://good.aaa.com:443 (Unknown error)


解決方法(の一つ):

HttpSocketインスタンスを生成するとき、ssl_verify_hostの設定を、falseにする。

そう設定したら、証明書のホスト名とCN(コモンネーム)の一致性をチェックしないので、違ってもエラーにならないようです。

参考:HttpSocketを使用してリクエスト送信

※もうひとつの方法は、証明書登録側が修正してもらいますか・・・

原因(例)

SSLのマークをクリックして、Securityのタブが表示します。(F12キーを押して開発ツールの画面からも見れる。) ”View Certificate”をクリックしたら、証明書の詳細を見える。

httpsでアクセスするURLのドメインと、証明書の「発行先」登録するドメインが一致しない場合、上記のエラーが発生。

image