背景
- 某项目现场设备无法连接互联网,导致安卓设备时钟不准确
- nginx配置中,强制启用了https,时钟误差的情况下,会提示时钟错误
原因
- SSL在握手过程中,会发送本地时间
详情可转到 https://blog.csdn.net/zqt520/article/details/27972811
现场方案
- 根据现场网络情况,可用nginx将访问网站的协议分离出来,既现场设备用http协议,其他网络依旧使用ssl
set $ssl_pro 0;
if ($remote_addr ~* "^(127\.0\.0\.1)|(localhost)|(10\.\d{1,3}\.\d{1,3}\.\d{1,3})|(172\.((1[6-9])|(2\d)|(3[01]))\.\d{1,3}\.\d{1,3})|(192\.168\.\d{1,3}\.\d{1,3})$") {
set $ssl_pro 1;
}
if ($ssl_protocol = "") { set $ssl_pro "${ssl_pro}2"; }
if ($ssl_pro = "02") { return 301 https://$host$request_uri; }
if ($ssl_pro = "1") { return 301 http://$host$request_uri; }