新环境c7、php7.4、openssl1.1.1g,再discuz里发送邮件总是报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
以上是测试结果
找了google和度娘都没有解决,说什么证书问题
最后看到个修改方法的,临时用一下
修改 source/function/function_core.php
注释原来的函数,新增以下方法
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;
}
测试后可以正常放邮件,就是以后dz升级要注意下这块或者重新编译系统环境。
原文提示
一个php系统很早的了,后来把环境升级换成https与php5.6以后发现通信api不工作,通过排查发现是fsockopen函数的问题: 报错:Warning: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages:error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate 解决方法法改造一下fsockopen方法: //不验证证书 $contextOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false ) ); //如果有签名的证书 /* $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_CONNECT, $context);
来源:https://www.xcwmoon.com/post/88
新环境c7、php7.4、openssl1.1.1g,再discuz里发送邮件总是报ssl连接不上的更多相关文章
- 笔记:JFB 部署新环境,要更改的参数清单列表
ylbtech-笔记:JFB 部署新环境,要更改的参数清单列表 1. Web.config返回顶部 2. JS返回顶部 1./m/js/utils.js var utils = {} 序号 参数 ...
- CentOS 7 安装 LNMP 环境(PHP7 + MySQL5.7 + Nginx1.10)
记录下在CentOS 7 安装 LNMP 环境(PHP7 + MySQL5.7 + Nginx1.10)过程笔记. 工具 VMware版本号 : 12.0.0 CentOS版本 : 7.0 一.修改 ...
- jenkins添加环境变量 ,win 10的 环境变量如下,win7 就是不加也可以运行,不报 “python 不是内部命令 ” 的错误。
jenkins 添加win 10的 环境变量如下,win7 就是不加也可以运行,不报 “python 不是内部命令 ” 的错误,暂时不知道怎么回事. jenkins这样添加环境变量 .
- 关于微信小程序开发环境苹果IOS真机预览报SSL协议错误问题解决方案
微信小程序开发环境苹果IOS真机预览报SSL协议错误问题 原文来自:https://blog.csdn.net/qq_27626333/articl ...
- 当在myeclipse里发送邮件有错误时,不妨把环境都改成jdk的
当在myeclipse里发送邮件有错误时,不妨把环境都改成jdk的, 如果是jre的环境会出错,改成jdk的就行了.
- LNMP环境搭建(<=PHP7.2)
目录 准备工作 安装wget 安装net-tools 安装vim 配置显示行号 关闭防火墙 安装Nginx 安装依赖 编译安装Nginx 配置环境变量 Systemd管理 安装MySQL 安装依赖 下 ...
- LNMP环境搭建(PHP7.4.0)
目录 准备工作 安装wget 安装net-tools 安装vim 配置显示行号 关闭防火墙 安装Nginx 安装依赖 编译安装Nginx 配置环境变量 Systemd管理 安装MySQL 安装依赖 下 ...
- Centos搭建开发环境,PHP7+ Nginx1.12+ Mysql5.7
1.更新yum源 yum -y update 2. 安装 epel-release yum install epel-release -y 检测安装成功:yum search nginx 结果含有: ...
- Linux 快速查看系统配置-熟悉新环境的配置
问题背景: 当我们使用新的环境的时候,需要很快得熟悉自己环境的配置,这时候我们如果知道一些命令就极为方便了.这样你就能对自己的环境较为熟悉,进行工作的时候也能随心所欲了. 如果你使用workstati ...
随机推荐
- HTML重点总结
HTML基础 1. 标题 HTML 标题(Heading)是通过<h1> - <h6> 标签来定义的. <h1>这是一个标题</h1> <h2&g ...
- NOIP 模拟 $21\; \rm Game$
题解 考试的时候遇到了这个题,没多想,直接打了优先队列,但没想到分差竟然不是绝对值,自闭了. 正解: 值域很小,所以我们开个桶,维护当前最大值. 如果新加入的值大于最大值,那么它肯定直接被下一个人选走 ...
- noip模拟6(T2更新
由于蒟弱目前还没调出T1和T2,所以先写T3和T4.(T1T2更完辣! update in 6.12 07:19 T3 大佬 题目描述: 他发现katarina大佬真是太强了,于是就学习了一下kata ...
- 获取访问者真实ip地址?我觉得不可能
我们真的能通过请求来获取用户真实的ip地址嘛? 答案是不能,如果能,肯定是我学的不够深入,欢迎交流指正. 那么写这篇文章的意义是什么?我们接着往下看. IP地址相当于电脑在网络上的身份证,但事实上IP ...
- 分布式redis自增
redis+springboot RedisUtil.java package com.meeno.chemical.common.redis; import java.util.Date; impo ...
- uwp Button的动态效果
你应该覆盖Button样式 <Page.Resources> <Style TargetType="Button" x:Key="CustomButto ...
- npm压缩js文件
参考:https://blog.csdn.net/msy_msy/article/details/78261383 1.压缩单个js文件 cnpm install uglify-js -g 安装 1& ...
- 判断N是否是质数,为什么判断到根号N就可以了
N=根号N*根号NN的因数除了根号N,其他都是成对存在的, 且必定一个大于根号N一个小于根号N假设N不是质数,有个因数大于根号N(不是N本身) 则N必定有一个与之对应的小于根号N的因数也就是说,如果2 ...
- REST设计风格:你写的 RESTful API 到第几层了?
理解REST 在理解其真正概念前,我们先来明确: REST它的核心思想是面向资源的抽象(相对于RPC就是面向过程抽象),它是一种设计风格的指导,而非具有较强约束的协议. REST源于Roy Thoma ...
- PB代码转JAVA工具
开发了PB代码转JAVA的工具,正在做datawindow和datastore的处理.以下是目前已经能处理的功能: 1.自动从PBL中获取对象的函数或事件代码 a)可以自动获取实例变量.函数或事件的入 ...