開発(PHP・API連携)

【Laravel】”stream_socket_enable_crypto(): Peer certificate CN=*.XXX’ did not match expected CN=XXXXX'”のエラーが出たら

laravel 開発(PHP・API連携)

【!ご注意ください!】この記事は2018年にLaravel 5.7を対象として書かれた、古い情報です。現在のLaravelバージョンでは、より適切な解決策が存在する可能性があります。

普段はWordPressに関する技術情報を中心に発信していますが、過去に私がLaravel開発で直面し、解決した問題の記録として、この記事を残しています。

こんにちは。大宮でWEB開発をしています、TEDASKのToshi Seitoです。

今回はLaravel5.7で開発中で行ったメール送信に関するエラーです。

stream_socket_enable_crypto(): Peer certificate CN=*.XXX' did not match expected CN=XXXXX'

このエラーがでたら、SSLの証明をチェックしてエラーが出ているという事なのですが、

開発環境でSSLを導入していないことがほとんどではないかと思います。

これを厳密にチェックしない方法に変更するためにコードを追記します。

app/config/mail.php

    /*
    |--------------------------------------------------------------------------
    | Log Channel
    |--------------------------------------------------------------------------
    |
    | If you are using the "log" driver, you may specify the logging channel
    | if you prefer to keep mail messages separate from other log entries
    | for simpler reading. Otherwise, the default channel will be used.
    |
    */

    'log_channel' => env('MAIL_LOG_CHANNEL'),

+   'stream' => [
+        'ssl' => [
+           'allow_self_signed' => true,
+           'verify_peer' => false,
+           'verify_peer_name' => false,
+       ],
+   ],
 ];

こうすることで、tlsでも送信が可能になり、エラーが消えるかと思います。

参考にしてみて下さい。

この記事を書いた人
Toshi Seito

TEDASK代表
WordPressに関する相談実績のべ600件以上!WordPressの高度なカスタマイズから、海外製の高機能WordPressテーマの導入支援、LaravelによるWEBサービス制作はお任せ下さい。

Toshi Seitoをフォローする
シェアする

コメント

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