郵件、openssl、證書的 PHP (7.1) 問題
在php.ini我有:
[openssl] openssl.cafile= /etc/ssl/cert/mydomaincabundle.crt
當我使用mydomain.ext證書時,此行允許從 PHP es Wordpress或 PHP 應用程序發送來自帶有SMTP的****PHP的電子郵件。
現在我需要使用作曲家,我發現當像作曲家這樣的 PHP 應用程序嘗試下載數據時,這一行會生成 SSL 錯誤。錯誤是:
file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed Failed to enable crypto failed to open stream: operation failed Now trying to download from source
如果我刪除php.ini行
[openssl] openssl.cafile= /etc/ssl/cert/mydomaincabundle.crt
這個問題已解決,但我開始看到所有PHP 郵件都失敗了,因此Wordpress等應用程序無法發送電子郵件。
如何讓郵件正常工作並解決 PHP SSL 問題?
如果我刪除帶有通過SMTP SSL發送的證書電子郵件的openssl行將失敗。
Connection: opening to ssl://domain.it:465, timeout=300, options=array () Connection: Failed to connect to server. Error number 2. "Error notice: stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed Connection: Failed to connect to server. Error number 2. "Error notice: stream_socket_client(): Failed to enable crypto Connection: Failed to connect to server. Error number 2. "Error notice: stream_socket_client(): unable to connect to ssl://domain.it:465 (Unknown error) SMTP ERROR: Failed to connect to server: (0) SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
謝謝你。
更新
在 php.ini 中,我指定使用我的域的 cafile。這使得來自 PHP 的電子郵件有效,而且我在載入我的域時也沒有問題。
當我嘗試使用作曲家時遇到問題,因為似乎 PHP 正在使用無法獲得驗證的域證書。
如果我從 PHP 停止工作的 php.ini 電子郵件中刪除 openssl ca.file,但作曲家工作正常。
當我刪除 openssl 行而不是將證書內容添加到我的域證書時,也許我需要找到 PHP 使用的系統證書在哪裡,這應該可以解決問題。
知道在哪裡可以找到此證書嗎?你認為這會解決問題嗎?
https://github.com/composer/composer/issues/7797#issuecomment-440585828
謝謝您的幫助。
解決了https://github.com/composer/composer/issues/7797#issuecomment-440680491
在 centos 中的位置似乎有點不同如何在 centos7 中添加證書頒發機構?
我在 etc/pki/ca-trust/extracted/openssl 上找到了它