我有一个digitalocean服务器(ubuntu 16.4 nginx)+ serverpilot 我安装了letsencrypt以下网站教程: https://www.robertwent.com/blog/using-letsencrypt-serverpilot /
一切顺利,结果如下:https://testelcon2.tk
问题: 该站点适用于在所有桌面浏览器上安装的ssl 但是,在移动Android浏览器中,它不起作用。 我收到的错误消息是一个红色的挂锁和消息: NET:ERR_CERT_DATE_INVALID
我测试了我在互联网上找到的其他网站,看看问题是否只出现在我的网站上,并且它们都在我的移动浏览器中正常工作(crome,safari和本地浏览器)
我试图解决这个问题4天,但没有成功。可能会发生什么?我做错了什么? 有人可以帮我查一下吗? https://www.ssllabs.com/ssltest/analyze.html?d=testelcon2.tk https://www.sslshopper.com/ssl-checker.html#hostname=https://testelcon2.tk
答案 0 :(得分:2)
在Android 7.0中存在一个已知问题,其中包含有关椭圆曲线的HTTPS连接。如果问题仅在Android 7.0设备上出现(此版本中仅存在错误),可能就是它。
最简单的解决方法是将服务器配置为使用prime256v1
椭圆曲线。如果你使用nginx只需设置
ssl_ecdh_curve prime256v1;
我知道您的错误消息并不表示与椭圆曲线有任何关系,但我在React Native中遇到这个问题时遇到了误导性的错误消息,只更改了我服务器中的椭圆曲线设置解决了它所以也许它可以帮到你。
This answare比我更好地解释了这个问题。
答案 1 :(得分:0)
实际上,这很可能是inspect.BoundArguments
服务器端设置问题。
将nginx上的funcsigs
设置更改为inspect.BoundArguments.apply_defaults
建议的设置:
from collections import OrderedDict
if not hasattr(inspect, 'signature'):
import funcsigs
for attr in funcsigs.__all__:
setattr(inspect, attr, getattr(funcsigs, attr))
if not hasattr(inspect.BoundArguments, 'apply_defaults'):
def apply_defaults(self):
arguments = self.arguments
new_arguments = []
for name, param in self._signature.parameters.items():
try:
new_arguments.append((name, arguments[name]))
except KeyError:
if param.default is not funcsigs._empty:
val = param.default
elif param.kind is funcsigs._VAR_POSITIONAL:
val = ()
elif param.kind is funcsigs._VAR_KEYWORD:
val = {}
else:
continue
new_arguments.append((name, val))
self.arguments = OrderedDict(new_arguments)
inspect.BoundArguments.apply_defaults = apply_defaults
别忘了重新加载(<script>
var1 = "http://ofuran.com";
var2 = "?ref=Df34hfgT";
var newlink = var1.concat(var2);
</script>
<?php echo '<script>window.open(newlink, "_blank"); </script>'; ?>
),现在所有有问题的android设备都可以正常工作。