关于https访问的证书设置
来源:互联网 发布:win10系统优化批处理 编辑:程序博客网 时间:2024/04/29 15:42
异常描述及原因
用OkHttp访问时错误异常大概是这样子
javax.net.ssl.SSLHandshakeException: com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException:
Could not validate certificate: current time: Wed Feb 03 00:01:59 GMT+08:00 2010, validation time: Wed Nov 06 05:36:50 GMT+08:00 2013
HTTPS:超文本安全传输协议,和HTTP相比,多了一个SSL/TSL的认证过程,端口为443。
- 1.peer终端发送一个request,https服务端把支持的加密算法等以证书的形式返回一个身份信息(包含ca颁发机构和加密公钥等)。
- 2.获取证书之后,验证证书合法性。
- 3.随机产生一个密钥,并以证书当中的公钥加密。
- 4.request https服务端,把用公钥加密过的密钥传送给https服务端。
- 5.https服务端用自己的密钥解密,获取随机值。
- 6.之后双方传送数据都用此密钥加密后通信.
https的时序图:
处理方式 构建相应的ssl证书
// Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() { @Override public void checkClientTrusted( java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { } @Override public void checkServerTrusted( java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { } @Override public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } }}; // Install the all-trusting trust manager try { SSLContext sslContext = SSLContext.getInstance("SSL"); sslContext.init(null, trustAllCerts, new java.security.SecureRandom()); // Create an ssl socket factory with our all-trusting manager javax.net.ssl.SSLSocketFactory sslSocketFactory = sslContext .getSocketFactory(); } catch (NoSuchAlgorithmException | KeyManagementException e) { e.printStackTrace(); }
0 0
- 关于https访问的证书设置
- 关于ios项目绕过证书访问https
- 关于HTTPS证书的理解
- java访问未验证证书的HTTPS
- 访问https 绕过证书验证的方法
- HTTPS访问中证书的处理
- java访问未验证证书的HTTPS
- httpclient访问未知证书的https网站
- https自建证书访问
- Https的数据请求的证书设置
- Https的数据请求的证书设置
- 关于HTTPS的证书的那些事
- 设置Tomcat的https访问
- okhttp关于https的证书信任问题
- 关于 Https 和证书
- 关于tomcat下设置HTTP访问和HTTPS访问的注意点
- CURL访问HTTPS证书登录
- java 访问https忽略证书
- 仿蘑菇街界面应用
- bzoj 4176 Lucas的数论 莫比乌斯反演
- a.indexOf('str')报错原因
- tensorflow学习记录--1.安装
- Timer Schedule参数说明
- 关于https访问的证书设置
- mysql查询表死锁和结束死锁
- cdecl:C语言声明分析器
- php的加密方式
- Builder模式——AlertDialog中的Builder简单应用
- Makefile详解-文件名
- ubuntu利用update-alternatives配置java
- 盒子模型理解
- C# WinForm页面切换产生控件闪烁的问题