welcome to xlongwei.com

欢迎大家一起学习、交流、分享


QQ群:162333776 邮箱:admin@xlongwei.com

小程序要求的TLS版本必须大于等于1.2


分类 Server   关键字 分享   标签 web   linux   nginx   发布 hongwei  1491380617564
注意 转载须保留原文链接,译文链接,作者译者等信息。  
request fail:小程序要求的TLS版本必须大于等于1.2。系统环境:CentOS 5.10。

升级openssl,最新版openssl-1.1.0e.tar.gz要求更新perl,默认安装到/usr/local/ssl
# wget https://www.openssl.org/source/openssl-1.0.1g.tar.gz   #此版本不需要更新已有的Perl 5.8.*
# cd /usr/local/src & tar zxvf openssl-1.0.1g.tar.gz
# ./config zlib-dynamic
# make & make install #默认安装到/usr/local/ssl
# ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl #提前备份好旧文件
# openssl version #查看版本

# ln -s /usr/local/ssl/lib/libssl.so /lib64/libssl.so.6 #更新链接(也许可选)
# ln -s /usr/local/ssl/lib/libssl.so /usr/lib/libssl.so
# vi /etc/ld.so.conf #添加行/usr/local/ssl/lib
# ldconfig #更新配置

重新编译nginx
# nginx -V  #查看nginx编译选项,然后进入源码目录添加选项--with-openssl=/usr/local/ssl
TLS SNI support enabled #重新编译后就可以看到支持TLS SNI
# vi /usr/local/nginx/conf/conf.d/tls.conf
server {
listen 443 ssl;
server_name tls.xlongwei.com;
ssl on;
ssl_certificate /soft/cert/214059957550961.pem;
ssl_certificate_key /soft/cert/214059957550961.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 /soft/statics;
index index.html;
}
}

重启nginx,需要kill旧的master pid,否则不生效
# nginx -s stop
# nginx

总结:
1,最开始以为是https证书不支持TLS 1.2,所以到阿里云证书服务申请了一份证书,还是不行:同一ip只支持一份证书(已有WoSign证书)。
2,换个ip测试,系统为CentOS 6.5,openssl为OpenSSL 1.0.1e-fips 11 Feb 2013,更改域名解析后OK。
3,尝试升级openssl,重新编译nginx之后,出现TLS SNI support enabled,问题解决。