阅读更多
【1.环境】
Java Web框架SSH中,前端采用uploadify组件上传文件。
Nginx+Tomcat,其中Nginx开启ssl监听,Tomcat没有,即https加在Nginx端。
通过openssl制作证书。
【2.现象】
(1)、通过Htttp访问时,在FireFox,Chrome,IE,360下均没有问题;
(2)、通过Https访问时,在Chrome,IE,360下没有问题,但是在FireFox下会上传文件失败,出现IO Error。
【3.分析】
(1)、uploadify采用Adobe SWF flash(Shockwave Flash)进行文件上传,文件类型为【application/x-shockwave-flash】
(2)、Adobe官方网站给出的解释是【It has been confirmed that the Adobe Flash Player does not support self signed certificates or Basic Authentication.】
即已经被确认的是,Adobe Flash Player不支持自签名证书或者基础认证。
(3)、疑问是,同样是采用swf解析,Chrome下没问题,而Firefox有问题,应该不是swf的问题,而要考虑Firefox的限制
(4)、查看Firefox控制台,存在警告【此网站使用了一个 SHA-1 证书;建议使用比 SHA-1 更强的哈希函数作为证书的签名算法。】
(5)、FireFox官网给出的解释是【 In order to avoid the need for a rapid transition should a critical attack against SHA-1 be discovered, we are proactively phasing out SHA-1.】
即为了避免SHA-1被攻击,我们将主动放弃对SHA-1的支持。
(6)、通过浏览器查看证书签名算法是SHA-1的。
(7)、After January 1, 2017, we plan to show the “Untrusted Connection” error whenever a SHA-1 certificate is encountered in Firefox.
即FireFox官方指出,在2006年1月1日后,任何时候,在FireFox上新产生的SHA-1认证,都将显示“不受信任的连接”。
在2017年1月1日后,任何时候,在FireFox上遇到SHA-1认证,都将显示“不受信任的连接”。
【4.解决】
方法一:修改openssl制作证书的算法,由SHA-1提升到SHA-2,即SHA-256或者SHA-512。=>此方法不可行,实际上与制作证书的算法无关。