在项目组一个H5运用项目上线后,进行测试验证时,创造在部分Android手机上的微信的内置浏览器中打开时会涌现页面空缺的征象。

经不完备统计,涌现三星s8、华为p9、华为nova2s、小米X5等手机打开个人中央显示为空缺。
如下所示:

定位问题:

linuxphp页面空白部门android手机微信显示h5页面空白问题解决计划 PHP

1、 涌现页面空缺后,疑惑页面要求问题,利用代理工具监控要求创造https要求正常。

2、 登录外网nginx做事器,在access.log日志中不能创造android手机发起的要求日志,这表明要求并未到达nginx做事器上,开始向网络同事寻求帮助是否有防火墙策略拦住要求。

3、 在nginx做事器上开启http/https双端口进行测试,对同一个资源要求文件进行测试,测试步骤如下

在android手机上通过微信APP打开

http://xx.com/pay/MP_verify_8Dp9kFKywgQTSVeY.txt 正常https://xx.com/pay/MP_verify_8Dp9kFKywgQTSVeY.txt 空缺且nginx做事器access.log无要求日志。

4、 后续疑惑https环境有问题,借助网上的第三方检测工具来检讨当前的证书链是否完全:如

检测xx.com结果如下图所示

5、确认Nginx做事器SSL证书链配置不当。
证书须要上传做事器证书、CA证书,再是私钥部分。
推断出漏传了CA证书部分,引发了部分环境由于缺少证书链下https识别有问题。

Nginx做事器配置SSL

CFCA公司代理GlobalSign的签发及管理,有如下4个文件,分别是

个中根证书、中级证书、公钥分别如下图所示:

将做事器证书、中级证书和根证书打开,依次将其代码复制到文本文件中(包

括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”),并保存成 server.crt。

如下:

-----BEGIN CERTIFICATE-----做事器证书编码-----END CERTIFICATE----------BEGIN CERTIFICATE-----中级证书编码-----END CERTIFICATE----------BEGIN CERTIFICATE-----根证书编码-----END CERTIFICATE-----

在linux做事器利用如下,将根证书、公钥合并成CRT文件,担保Nginx 利用 KEY 和 CRT 格式的证书:

1) cp SSLCERT.cer server.crt

2) 增加一空行

3) cat Organization.cer >> server.crt

nginx配置如下:(通过验证)