curl: (35) SSL received a record that exceeded the maximum permissible length
·
标题是一个curl的请求错误,
curl https://www.xxxx.com
curl: (35) SSL received a record that exceeded the maximum permissible length.
环境是部署在了阿里云,于是咨询了阿里云的工程师,结果不出所料阿里客服一直敷衍说要用他们提供的参考样例,最终还是要靠自己。阿里云建议的配置如下:
server {
listen 443;
server_name localhost;
ssl on;
root html;
index index.html index.htm;
ssl_certificate cert/214911897850933.pem;
ssl_certificate_key cert/214911897850933.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
但是在nginx 1.15以上的版本中会有警告:nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /usr/local/nginx/conf/servers/www.xxxx.com:
于是我就注掉了“ssl on;”这行!这是错误的根源。并且我在多次试验中都重复了这个操作,直到深夜的一次试验中决定保留那个警告看看,结果就神奇的成功了。
最后,我又我又不忘去教育了一下阿里的客服,告诉他要专心做试验不要老是敷衍了事。
第二天收到了客服的反馈,看来这次他确实做测试了。下面是他反馈的结果:
工程师 号 : 我们尝试了一下,但并未找到 1.15.1 源代码, 使用了 1.15.3. 使用这个配置后,是正常的。 您可以参考一下。
server {
listen 443 ssl;
server_name 1234.xxxx.cn;
ssl_certificate /usr/local/nginx/ssl/xxxx.pem;
ssl_certificate_key /usr/local/nginx/ssl/xxxx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
在我的配置中还有另外一个问题:有一个server中配置了443端口但没有开启ssl,导致请求都跑到了这个里面。注掉这部分就ok了。
更多推荐
已为社区贡献1条内容
所有评论(0)