近期有个系统响应公司号召,进行了HTTPS改造......
经过整站http的搜索与替换后部署上线。
问题1:微信公众号接口全部失效。
$content = file_get_contents(sprintf($oauthurl,$_GET['code']),false);
经过逐步排查,最终错误定位到这个函数。尝试去掉false后可以正常工作。
但是手册中关于第二个参数的描述是默认值为
$use_include_path = false
既然默认值为false,写个false就遇到异常了也是十分纠结。然后从程序中摘出此处代码写个独立脚本测试,有没有false都可以执行成功。
这就尴尬了。。原因之后再查
问题2:切换https后android手机浏览器访问提示证书不安全、微信访问为空白页。
在微信中遇到问题,第一时间用微信web开发者工具进行排查、调试,但是访问每个后端节点都是正常的。并且PC、苹果的浏览器访问移动端连接完全正常,没有证书异常的提示,开始把问题定位于证书。
在android查看证书信息,发现证书链不完整,替换新的完整的证书后解决。
PC/苹果不会验证证书链, android对于证书的验证比较严格。证书链其实就是描述证书的签名环节,就比如是 A 颁发证书给 B ,B颁发证书给C,然后我们手里的就是 证书C。当证书链不完整的情况下,也就是没有描述我们手中的证书C是由谁办法的,所以导致的浏览器不认为你这个证书是可信的授权证书。