久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

12下一頁(yè)
返回列表 發(fā)帖
查看: 5156|回復(fù): 14

[已解決] 還是 discuz 3.4 郵件設(shè)置問(wèn)題

37

主題

164

回帖

316

積分

爐火純青

貢獻(xiàn)
0 點(diǎn)
金幣
97 個(gè)
樓主
發(fā)表于 2022-8-9 07:09:59 | 只看樓主 |只看大圖 |倒序?yàn)g覽 |閱讀模式
1、如圖所示,同樣的php.ini配置,在 php 7.4 下 25 端口可以正常收發(fā)郵件, 465 端口就不行(日志錯(cuò)誤是 CONNECT - Unable to connect to the SMTP server),而用 php 5.5, 25 和 465 端口都可以正常收發(fā)郵件。

2、網(wǎng)上的文章


希望高手能排查
1 貢獻(xiàn)

最佳答案

新環(huán)境c7、php7.4、openssl1.1.1g,再discuz里發(fā)送郵件總是報(bào)ssl連接不上
Warning: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed in /www/a.php on line 5

Warning: fsockopen(): Failed to enable crypto in /www/a.php on line 5

Warning: fsockopen(): unable to connect to ssl://smtp.exmail.qq.com:465 (Unknown error) in /www/a.php on line 5
  

以上是測(cè)試結(jié)果

找了google和度娘都沒(méi)有解決,說(shuō)什么證書(shū)問(wèn)題

最后看到個(gè)修改方法的,臨時(shí)用一下

修改 source/function/function_core.php

注釋原來(lái)的函數(shù),新增以下方法

function fsocketopen($hostname, $port = 80, &$errno, &$errstr, $timeout = 15) {
    $fp = '';
    if(function_exists('stream_socket_client')) {
        $contextOptions = array(
                    'ssl' => array(
                        'verify_peer' => false,
                        'verify_peer_name' => false
                    )
                );
                $context = stream_context_create($contextOptions);
                $fp = @stream_socket_client($hostname.':'.$port, $errno, $errstr, $timeout,STREAM_CLIENT_CONNECT, $context);
        }
    return $fp;
}
測(cè)試后可以正常放郵件,就是以后dz升級(jí)要注意下這塊或者重新編譯系統(tǒng)環(huán)境。

原文提示

一個(gè)php系統(tǒng)很早的了,后來(lái)把環(huán)境升級(jí)換成https與php5.6以后發(fā)現(xiàn)通信api不工作,通過(guò)排查發(fā)現(xiàn)是fsockopen函數(shù)的問(wèn)題:

報(bào)錯(cuò):Warning:  fsockopen(): SSL operation failed with code 1. OpenSSL Error messages:error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate



解決方法法改造一下fsockopen方法:

//不驗(yàn)證證書(shū)

$contextOptions = array(

    'ssl' => array(

        'verify_peer' => false,

        'verify_peer_name' => false

    )

);

//如果有簽名的證書(shū)

/*

$contextOptions = array(

    'ssl' => array(

        'verify_peer' => true,

        'cafile' => '/path/to/cacert.pem',

        //'CN_match' => 'xcwmoon.net', // 匹配域名

        'ciphers' => 'HIGH:!SSLv2:!SSLv3',

        'disable_compression' => true,

    )

);

*/

$context = stream_context_create($contextOptions);

$fp = stream_socket_client("ssl://{$host}:{$port}", $errno, $errstr, $timeout, STREAM_CLIENT_CO
回復(fù)

使用道具 舉報(bào)

14

主題

3415

回帖

5829

積分

應(yīng)用開(kāi)發(fā)者

貢獻(xiàn)
408 點(diǎn)
金幣
170 個(gè)
QQ
沙發(fā)
發(fā)表于 2022-8-9 08:25:31 | 只看Ta
你是用的 寶塔面板嗎?  可以重新 編譯安裝一下 php7 試試呢
回復(fù)

使用道具 舉報(bào)

37

主題

164

回帖

316

積分

爐火純青

貢獻(xiàn)
0 點(diǎn)
金幣
97 個(gè)
板凳
 樓主| 發(fā)表于 2022-8-9 20:50:10 | 只看Ta
天外飄仙 發(fā)表于 2022-8-9 08:25
你是用的 寶塔面板嗎?  可以重新 編譯安裝一下 php7 試試呢

不是寶塔,自己搭建的郵件服務(wù)器,server 2019,想升級(jí)成 php 7.4,現(xiàn)在就剩這一個(gè) 465 端口問(wèn)題
回復(fù)

使用道具 舉報(bào)

19

主題

2196

回帖

3311

積分

應(yīng)用開(kāi)發(fā)者

貢獻(xiàn)
74 點(diǎn)
金幣
629 個(gè)
QQ
地板
發(fā)表于 2022-8-10 03:06:38 | 只看Ta
郵件服務(wù)器自行搭建的?用465 證書(shū)配置是公網(wǎng)的還是自簽名的?
回復(fù)

使用道具 舉報(bào)

37

主題

164

回帖

316

積分

爐火純青

貢獻(xiàn)
0 點(diǎn)
金幣
97 個(gè)
5#
 樓主| 發(fā)表于 2022-8-10 06:42:28 | 只看Ta
crx349 發(fā)表于 2022-8-10 03:06
郵件服務(wù)器自行搭建的?用465 證書(shū)配置是公網(wǎng)的還是自簽名的?

沒(méi)有證書(shū)
回復(fù)

使用道具 舉報(bào)

19

主題

2196

回帖

3311

積分

應(yīng)用開(kāi)發(fā)者

貢獻(xiàn)
74 點(diǎn)
金幣
629 個(gè)
QQ
6#
發(fā)表于 2022-8-10 16:21:05 | 只看Ta
zhansh 發(fā)表于 2022-8-10 06:42
沒(méi)有證書(shū)

沒(méi)配置 證書(shū)你截圖上的ssl怎么來(lái)的?
回復(fù)

使用道具 舉報(bào)

37

主題

164

回帖

316

積分

爐火純青

貢獻(xiàn)
0 點(diǎn)
金幣
97 個(gè)
7#
 樓主| 發(fā)表于 2022-8-10 20:39:50 | 只看Ta
不需要證書(shū),跑偏了,我在 php 5.5 郵件系統(tǒng)是正常使用的,php 7.4 不行
回復(fù)

使用道具 舉報(bào)

37

主題

164

回帖

316

積分

爐火純青

貢獻(xiàn)
0 點(diǎn)
金幣
97 個(gè)
8#
 樓主| 發(fā)表于 2022-8-10 20:52:55 | 只看Ta
crx349 發(fā)表于 2022-8-10 16:21
沒(méi)配置 證書(shū)你截圖上的ssl怎么來(lái)的?

你這一說(shuō),我發(fā)現(xiàn) 5.5 之后版本的php.ini都多了下面一節(jié),之前版本是沒(méi)有的
[openssl]
; The location of a Certificate Authority (CA) file on the local filesystem
; to use when verifying the identity of SSL/TLS peers. Most users should
; not specify a value for this directive as PHP will attempt to use the
; OS-managed cert stores in its absence. If specified, this value may still
; be overridden on a per-stream basis via the "cafile" SSL stream context
; option.
;openssl.cafile=

; If openssl.cafile is not specified or if the CA file is not found, the
; directory pointed to by openssl.capath is searched for a suitable
; certificate. This value must be a correctly hashed certificate directory.
; Most users should not specify a value for this directive as PHP will
; attempt to use the OS-managed cert stores in its absence. If specified,
; this value may still be overridden on a per-stream basis via the "capath"
; SSL stream context option.
;openssl.capath=
回復(fù)

使用道具 舉報(bào)

37

主題

164

回帖

316

積分

爐火純青

貢獻(xiàn)
0 點(diǎn)
金幣
97 個(gè)
9#
 樓主| 發(fā)表于 2022-8-10 22:32:58 | 只看Ta
新環(huán)境c7、php7.4、openssl1.1.1g,再discuz里發(fā)送郵件總是報(bào)ssl連接不上
Warning: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed in /www/a.php on line 5

Warning: fsockopen(): Failed to enable crypto in /www/a.php on line 5

Warning: fsockopen(): unable to connect to ssl://smtp.exmail.qq.com:465 (Unknown error) in /www/a.php on line 5
  

以上是測(cè)試結(jié)果

找了google和度娘都沒(méi)有解決,說(shuō)什么證書(shū)問(wèn)題

最后看到個(gè)修改方法的,臨時(shí)用一下

修改 source/function/function_core.php

注釋原來(lái)的函數(shù),新增以下方法

function fsocketopen($hostname, $port = 80, &$errno, &$errstr, $timeout = 15) {
    $fp = '';
    if(function_exists('stream_socket_client')) {
        $contextOptions = array(
                    'ssl' => array(
                        'verify_peer' => false,
                        'verify_peer_name' => false
                    )
                );
                $context = stream_context_create($contextOptions);
                $fp = @stream_socket_client($hostname.':'.$port, $errno, $errstr, $timeout,STREAM_CLIENT_CONNECT, $context);
        }
    return $fp;
}
測(cè)試后可以正常放郵件,就是以后dz升級(jí)要注意下這塊或者重新編譯系統(tǒng)環(huán)境。

原文提示

一個(gè)php系統(tǒng)很早的了,后來(lái)把環(huán)境升級(jí)換成https與php5.6以后發(fā)現(xiàn)通信api不工作,通過(guò)排查發(fā)現(xiàn)是fsockopen函數(shù)的問(wèn)題:

報(bào)錯(cuò):Warning:  fsockopen(): SSL operation failed with code 1. OpenSSL Error messages:error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate



解決方法法改造一下fsockopen方法:

//不驗(yàn)證證書(shū)

$contextOptions = array(

    'ssl' => array(

        'verify_peer' => false,

        'verify_peer_name' => false

    )

);

//如果有簽名的證書(shū)

/*

$contextOptions = array(

    'ssl' => array(

        'verify_peer' => true,

        'cafile' => '/path/to/cacert.pem',

        //'CN_match' => 'xcwmoon.net', // 匹配域名

        'ciphers' => 'HIGH:!SSLv2:!SSLv3',

        'disable_compression' => true,

    )

);

*/

$context = stream_context_create($contextOptions);

$fp = stream_socket_client("ssl://{$host}:{$port}", $errno, $errstr, $timeout, STREAM_CLIENT_CO
回復(fù)

使用道具 舉報(bào)

37

主題

164

回帖

316

積分

爐火純青

貢獻(xiàn)
0 點(diǎn)
金幣
97 個(gè)
10#
 樓主| 發(fā)表于 2022-8-10 22:38:18 | 只看Ta
PHP 5.6.x中OpenSSL的變化 ?
使用SSL/TLS時(shí),流包裝現(xiàn)在默認(rèn)情況下會(huì)驗(yàn)證對(duì)等證書(shū)和主機(jī)名 ?
默認(rèn)情況下,所有加密的客戶(hù)端流現(xiàn)在都啟用對(duì)等驗(yàn)證。默認(rèn)情況下,這將使用OpenSSL的默認(rèn)CA包來(lái)驗(yàn)證對(duì)等證書(shū)。在大多數(shù)情況下,與具有有效SSL證書(shū)的服務(wù)器通信不需要進(jìn)行任何更改,因?yàn)榘l(fā)行商通常將OpenSSL配置為使用已知良好的CA包。

通過(guò)設(shè)置openssl.cafile或openssl.capath配置設(shè)置,可以在全局基礎(chǔ)上覆蓋默認(rèn)CA包,或者通過(guò)使用cafile或者capath上下文選項(xiàng)。

雖然通常不建議這樣做,但是可以通過(guò)設(shè)置verify_peer上下文選項(xiàng)到false,并通過(guò)設(shè)置verify_peer_name上下文選項(xiàng)到false.
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

  • 關(guān)注公眾號(hào)
  • 有償服務(wù)微信
  • 有償服務(wù)QQ

手機(jī)版|小黑屋|Discuz! 官方交流社區(qū) ( 皖I(lǐng)CP備16010102號(hào) |皖公網(wǎng)安備34010302002376號(hào) )|網(wǎng)站地圖|star

GMT+8, 2025-9-20 11:55 , Processed in 0.081259 second(s), 35 queries .

Powered by Discuz! W1.0 Licensed

Copyright © 2001-2025 Discuz! Team.

關(guān)燈 在本版發(fā)帖
有償服務(wù)QQ
有償服務(wù)微信
返回頂部
快速回復(fù) 返回頂部 返回列表