关于工作中遇到的HTTPS 和 SSL

上个星期,遇到了加密视频不能播放的问题,检查了日志发现如下报错:

Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

最终敲定原因,应该是HTTPS站点的SSL数字证书出错,导致无法建立网络连接,无法下载解密文件,也就无法播放加密视频了。

解决方法无非两个:

1、保持原有设计,那就是更新证书。

2、证书不能动的 情况下,那就只能通过代码来忽略掉证书,直接建立连接了。

关键代码如下:

public static void trustAllHosts() {
        // Create a trust manager that does not validate certificate chains
        // Android use X509 cert
        TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                return new java.security.cert.X509Certificate[] {};
            }

            public void checkClientTrusted(X509Certificate[] chain,
                    String authType) throws CertificateException {
            }

            public void checkServerTrusted(X509Certificate[] chain,
                    String authType) throws CertificateException {
            }
        } };

        // Install the all-trusting trust manager
        try {
            SSLContext sc = SSLContext.getInstance("TLS");
            sc.init(null, trustAllCerts, new java.security.SecureRandom());
            HttpsURLConnection
                    .setDefaultSSLSocketFactory(sc.getSocketFactory());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
时间: 2024-08-03 02:39:47

关于工作中遇到的HTTPS 和 SSL的相关文章

https知识了解与javaweb中如何使用https

1)      https是什么? https是一种协议,在说https之前我们先说一下什么是http,http就是我们平时浏览网页时使用的一种协议,https协议传输的数据都是未加密的,也就是明文的,因此使用http协议传输隐私信息非常不安全.为了保证这些隐私数据能够加密传输,王景公司设计了SSL(Secure Socket Layer安全套接字层)协议用于对http协议传输的数据进行加密,从而诞生了https.SSL目前的版本是3.0,被IETF定义在RFC6101中,之后IETF对SSL3

HTTPS和SSL并不意味着您拥有安全的网站

HTTPS和SSL并不意味着您拥有安全的网站 在大多数情况下,搜索引擎优化社区首先将注意力转移到小绿色锁定,当时百度SEO专家发布了一篇宣布HTTPS作为排名信号的帖子.几乎所有的SEO都建议他们的HTTP客户端为了排名目的而转向HTTPS,但实际上,它从未(也绝不应该)关于排名. 那么百度为什么要谈论排名呢?总之,要让人们注意. Baidu的长期目标是让网络对用户更安全,并保护自己的用户.毕竟,如果Baidu向用户显示结果,他们会看到他们的信用卡详细信息被盗,他们可能不太信任Baidu为他们提

HTTPS、SSL、TLS三者之间有什么联系和区别?

SSL(Secure Socket Layer 安全套接层)是基于HTTPS下的一个协议加密层,最初是由网景公司(Netscape)研发,后被IETF(The Internet Engineering Task Force - 互联网工程任务组)标准化后写入(RFCRequest For Comments 请求注释),RFC里包含了很多互联网技术的规范! 起初是因为HTTP在传输数据时使用的是明文(虽然说POST提交的数据时放在报体里看不到的,但是还是可以通过抓包工具窃取到)是不安全的,为了解决

Https协议:SSL建立过程分析(也比较清楚,而且有OpenSSL的代码)

web访问的两种方式: http协议,我们一般情况下是通过它访问web,因为它不要求太多的安全机制,使用起来也简单,很多web站点也只支持这种方式下的访问. https协议(Hypertext Transfer Protocol over Secure Socket Layer),对于安全性要求比较高的情况,可以通过它访问web,比如工商银行https://www.icbc.com.cn/icbc/(当然也可以通过http协议访问,只是没那么安全了).其安全基础是SSL协议. SSL协议,当前版

(转)Java安全通信:HTTPS与SSL

转:http://www.cnblogs.com/devinzhang/archive/2012/02/28/2371631.html 1. HTTPS概念 1)简介 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL.这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法

聊聊HTTPS和SSL/TLS协议

原文地址:http://www.techug.com/https-ssl-tls 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识.1. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义2. 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接”)3. 大致了解加密算法的概念(尤其是“对称加密与非对称加密”的区别)4. 大致了解 CA 证书的用途 考虑到很多技术菜鸟可能不了解上述背景,俺先用最简短的文字描述一下.如果你自认为不是菜鸟,请略过本章节,直接去看“

浅谈 HTTPS 和 SSL/TLS 协议的背景与基础

相关背景知识 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 大致了解 HTTP 和 TCP 的关系(尤其是"短连接"VS"长连接") 大致了解加密算法的概念(尤其是"对称加密与非对称加密"的区别) 大致了解 CA 证书的用途 考虑到很多技术菜鸟可能不了解上述背景,俺先用最简短的文字描述一下.如果你自认为不是菜鸟,请略过本章节,直接去看"HTTPS 协议的需求&

工作中那些不得不注意的事儿!

这里不是闲话家常,只是说说工作中那些不得不注意的事儿! 一.浏览器 在我的电脑中我安装了IE.火狐.谷歌三种浏览器,平时可能用火狐比较多,再就是谷歌,最后是IE.可能有很多朋友和我一样,电脑中也安装了很多不同的浏览器,平时上网可能没有什么,但是到了工作中就不得不注意.-----浏览器先得好,工作没烦恼! 前段时间客户那里的无线控制器要升级,我们早早地作好了准备.待下班后,我们登录控制器的WEB界面,轻车熟路地找到升级选项,点击浏览,选择升级文件,确定.故事就在这时候发生了,确定完成之后,界面上一

mac中apache开启https功能,本地发布安装app

mac中apache开启https功能,本地发布安装app 最近app进入收尾阶段,发包比较频繁.很多手机都不在测试证书中,所以使用的是企业证书打包. 每次上传到外网服务器都很慢,需要15分钟左右.想想还是自己本地mac做个服务器下载比较快一点. 所以学了下apache开启https的内容,本文记录了自己的学习过程. 1-先制作自己的签名证书 在前面的apache相关中,已经在mac上开启了apache,为了后面手机安装证书方便,我是在 /Library/WebServer/Documents/