簡體   English   中英

發送 TLS 電子郵件時 Laravel 證書驗證錯誤

[英]Laravel certificate verification errors when sending TLS email

Windows 10、Apache httpd 2.4、PHP 7.1.4、Laravel 5.5
Gmail 的安全性較低是允許的。


我的.env 文件:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=account@gmail.com
MAIL_PASSWORD=password
MAIL_ENCRYPTION=ssl

錯誤信息:

無法與主機 smtp.gmail.com 建立連接


MAIL_PORT=587
MAIL_ENCRYPTION=tls

錯誤信息:

stream_socket_enable_crypto():SSL 操作失敗,代碼為 1。OpenSSL 錯誤消息:錯誤:14090086:SSL 例程:ssl3_get_server_certificate:證書驗證失敗

如何解決“證書驗證失敗”錯誤?

我找到了解決方案。 無需更改guzzlehttp / guzzle / src / Client.php,這在另一個問題中建議。

解:

  1. https://curl.haxx.se/docs/caextract.html下載cacert.pem文件
    將cacert.pem放在您喜歡的地方。

  2. 編輯php.ini

兩行:

curl.cainfo=D:/Servers/php/sslfiles/cacert.pem  
openssl.cafile=D:/Servers/php/sslfiles/cacert.pem 
  1. 重新啟動apache httpd。

當您收到 ssl 證書驗證錯誤時,您可以在 .env 文件中設置這兩個變量:

MAIL_PORT=587
MAIL_ENCRYPTION=tcp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM