因为最近生产要支持IOS设备,然而却发现点击.plist文件无法下载,提示无法连接到www.xxx.com。
网上查过一大堆资料说可能是证书的问题。
https://www.ssllabs.com/ssltest/index.html还在这里测试了不少。
经过了几天漫长时间的奋战,记录下学到的一些东西
要支持TLS1.1 TLS1.2 openssl 版本一定要> 1.0.1
openssl 编译可以参考官网,最好下载最新版本的
我是参考这边文章部署的
http://www.linuxfromscratch.org/blfs/view/svn/postlfs/openssl.html
openssl version 查看openssl版本 openssl dhparam -out dhparam.pem 4096 openssl安全着想,防止向前漏洞 这个要跑很久 openssl ciphers -v ‘TLSv1.2‘ 查看支持版本 openssl genrsa --help 帮助genrsa openssl genrsa -des3 -out server.key 2048 生成一个key,godaddy上生成证书起码要2048 openssl s_client -connect www.google.com:443 客户端测试使用的证书 openssl req -new -key -subj "/C=CN/ST=Beijing/L=Beijing/O=FYLtd/OU=ITranswarp/CN=www.example.com" server.key -out server.csr 生成一个证书请求 openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt 这里是生成证书。
这是我服务器自动生成证书的脚本,如果要去godaddy或者其他网站生成证书,最后一个可以注释。然后去第三方的下载下来就可以直接使用了
#!/bin/bash DOMAIN="d.example.com" openssl genrsa -des3 -out $DOMAIN.key 2048 #openssl ecparam -genkey -name secp160r1 -out $DOMAIN.key SUBJECT="/C=CN/ST=Beijing/L=Beijing/O=FYLtd/OU=ITranswarp/CN=$DOMAIN" openssl req -new -subj $SUBJECT -key $DOMAIN.key -out $DOMAIN.csr -sha256 #openssl x509 -req -days 3650 -in $DOMAIN.csr -signkey $DOMAIN.key -out $DOMAIN.crt
nginx 如果要经过苹果一定要开启支持TLS:
这里是参考文章
http://xfeng.me/nginx-enable-tls-sni-support
http://nginx.org/en/docs/http/configuring_https_servers.html#chains
nginx ssl优化设置:
ssl on; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem; ssl_certificate /usr/local/nginx/conf/ssl/server.crt; ssl_certificate_key /usr/local/nginx/conf/ssl/server.key;
这里参考 http://www.oschina.net/translate/strong_ssl_security_on_nginx
如果你需要将TLS1.0升级到TLS1.2那么按照上面的步骤做一遍就可以了
本文出自 “孜孜不倦的学习着...” 博客,请务必保留此出处http://jonyisme.blog.51cto.com/3690784/1732226
原文地址:http://jonyisme.blog.51cto.com/3690784/1732226