给大家分享一个实际案例.

基础情况: 我们有两台服务器: 前台服务器,后台服务器;

近日,我们给前台服务器升级了Symantec的SSL证书, 原证书过期了.

此时,出现一个问题,  后台程序使用CURL 向前台POST数据时 失败. (具体情况是进程死掉,没有报错,没有报异常)

我们进行了排查

1.各种修改CURL参数配置, 无效.

2.后台 CURL GET 百度(也是HTTPS的), 成功

3.用另一台服务器 CURL GET 前台,成功.

4.前台去除SSL证书,访问成功

5.证书安装在第三台服务器上,使用第四台服务器进行访问,成功.

6.排查 前台 Nginx日志, 没有收到请求.

7.排查防火墙,无关

8.排查 安全硬件, 我们有 WAF,天眼等安全防护硬件, 无关.

9.换了一台服务器对前台进行CURL POST,成功

到此,感觉请求没有出后台服务器就完蛋了.继续排查

10.从后台服务器向 百度 发出CURL POST 请求, 失败, 此时确认是后台服务器问题

11.从第三台服务器向前台发出CURL POST 请求,成功,  我们开始将后台程序迁移到第三台服务器上.

12.迁移后,简单请求成功(之前为简化测试,只传递几个字符)

新的问题出现了,  当传递真实数据(图片,大约几百K左右), CURL报错  SSL write error  错误代码 55

13.网上搜索,有说是前台缓冲区的问题,尝试修改前台Nginx相关配置, 没有作用.

14.再次思考,此时 网络路径上还有WAF防护, 检查 WAF日志,被阻拦.

WAF放行后,再次出现新的问题, CURL请求成功,但整个实际功能极慢,超时.

15.程序加日志跟踪后发现, 新的服务器 对外访问(我们有对外接口),时, 不在对方允许 的IP 范围内 , 因为我们更换了服务器,当然也换了IP

添加访问白名单后,整个问题完整解决.

现在需要思考的有一个问题:

原后台环境出了什么问题 导致  CURL 在 SSL情况下的POST 出错.

暂时还没准确定位, 回想近期相关工作, 有如下猜测

1.PHP版本升级, 从5.6.12 升级到5.6.30  , 但不能确认,因为我们新的服务器也是5.6.30

2.手动更新WGET 组件

3.物理故障

要总结的也是一件事情

出现问题后,只有两件事情要作:

1.定位问题,2.解决问题

其中定位 问题是最困难的. 但大体思路也无非如下:

1.  思考整个事件链上的相关组件, 具体到我这个案例有:

CURL参数|安全硬件|防火墙|证书|目标服务器

2.一次只修改一个环节,并测试, 这样可以排除掉无关因素,

3.再对定位到的环节进行细化分解,逐个定位 .

PHP 接入SSL后的一个极端个例相关推荐

  1. 在阿里云开通SSL后,网站PING不通!再说一下 阿里云的服务响应和体验真心的太差!!你们有没有同感?

    为什么我网站开通SSL后,PING不通网站 *我昨天在阿里云上开通了SSL,然后用CDN加载后,网站可以打开,但本地就是PING不通我们的网站 本地 运行–CMD-回车 ping www.shmeky ...

  2. 301跳转 https_部署https(ssl)后设置301跳转将http跳转到https的方法

    注意: 1,以下教程针对我司虚拟主机或者亚数的云主机香港IP部署SSL后的301跳转(非亚数机房需要注意规则中行替换). 2,把规则中域名替换成自己的域名. linuxt系统 apache环境 云服务 ...

  3. 部署https(ssl)后设置301跳转将http跳转到https

    注意,以下教程针对我司虚拟主机或者亚数的云主机香港IP部署SSL后的301跳转(非亚数机房需要注意规则中行替换),把规则中域名替换成自己的域名. wordpress程序请参考:虚拟主机WordPres ...

  4. 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?...

    代码: package com.liron.p1; /*** 一个整数,它加上100后是一个完全平方数,再加上168又是* 一个完全平方数,请问该数是多少?* */ public class Topi ...

  5. 在单链表的第i个位置后插入一个节点(阿里+腾讯等面试题总结)

    时间:2014.04.26 地点:基地 ------------------------- 一.题目 题目是非常easy和基础,就是在单链表的第i个位置后插入一个节点.要求写代码,5分钟之内完毕.面腾 ...

  6. 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少...

    一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少 /*** 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少* * @a ...

  7. 【ruoyi若依】启用HTTPS/SSL后,首页重定向出错

    前言 ruoyi 4.6.0 Spring Boot Version: 2.3.4.RELEASE nginx 1.5.11 nginx 反向代理项目.参考这里 添加了 ForwardedHeader ...

  8. 开源矿工和轻松矿工接入ssl

    NBminer内核 请在网址前面加入ethproxy+ssl 例子:-o ethproxy+ssl://ethssl.fish-pool.com:7688 ====================== ...

  9. [css] 移动页面底部工具条有3个图标,如何平分?在设置边框后最后一个图标掉下去了怎么办?

    [css] 移动页面底部工具条有3个图标,如何平分?在设置边框后最后一个图标掉下去了怎么办? flex-wrap nowrap, 一般flex默认就是nowrap white-space:nowrap ...

最新文章

  1. 接口测试(postman jmeter)
  2. Cell子刊:源自微生物群的醋酸盐能够在健康和疾病期间促进大脑先天免疫系统的代谢适应性...
  3. android 得到毫秒时间戳,android – Location.getTime()总是返回没有毫秒的时间戳
  4. 深入学习SAP UI5框架代码系列之二:UI5 控件的渲染器
  5. pyqt 槽任意参数_PyQt5信号与槽机制入门(一)
  6. 文件共享服务器第二部,第二章-构建Samba文件共享服务器.docx
  7. 远程Linux主机安装zsh插件zsh-syntax-highlighting
  8. Kali Linux安装Remmina无法加载RDP插件
  9. Opencv--学习Opencv比较好的网址
  10. 魔乐MLDN李兴华主讲Oracle视频教程
  11. 计算机程序试题答案,历年计算机软考程序设计模拟试题及答案
  12. 随机信号分析与处理 相关
  13. 数据结构:顺序表的基本操作
  14. 微软网站打不开_分享几个国外超高清壁纸网站4k可任意下载
  15. bugzilla mysql 配置_Bugzilla环境安装和配置手册
  16. 【愚公系列】2021年11月 攻防世界-进阶题-MISC-053(很普通的数独)
  17. 干货来啦!「敏捷开发畅想与实战」沙龙回顾
  18. 基于beego的高并发开源论坛框架Casnode
  19. soso地图开放API info层详解
  20. 【Vue】快乐学习第二篇

热门文章

  1. 前端学HTTP之web攻击技术
  2. 微信公众号开发-(.net)
  3. 电脑使用技巧提升篇8:Office数据文件加密(以Word文档加密为例)
  4. MapX.h和MapX.cpp下载
  5. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xxxxx
  6. js爬取:bili播放列表,右下角建立红底白字下载按钮,保存为csv格式到本地
  7. ps怎么给图片加透明边框
  8. 详细设计说明书(转载)
  9. [Python3]pandas.merge用法详解
  10. 计算机毕业设计Java醋坊定制销售平台(源码+系统+mysql数据库+lw文档)