记一次HTTPS证书验证测试过程

by:授客 QQ:1033553122

实践

1) 安装证书

选择主机A(假设10.202.95.88)上安装https证书

说明:采用https的服务器,必须安装数字证书,这个可以是自己制作,也可以想组织申请,区别在于自己颁发的证书,需要客户端验证通过,才可以继续访问(常见的就是浏览器弹窗,提示是否信任该网站),而由像组织申请的受信任证书则不会弹出该提示。

2) 配置本地DNS

选择主机B(假设10.202.95.38,能访问10.202.88.151),配置本地DNS,在/etc/hosts中添加如下内容

10.202.88.151 xxx.sf-express.com

说明:10.202.88.151为负载VIP,如下,访问负载vip时,会随机转发至集群节点主机

10.202.88.151 ->10.202.95.88

10.202.88.151 ->10.202.95.87

然后在主机B上,发起https下载请求

$ wget https://xxx.sf-express.com/

--2017-10-24 17:08:58--  https://xxx.sf-express.com/

Resolving xxx.sf-express.com... 10.202.88.151

Connecting to xxx.sf-express.com|10.202.88.151|:443... connected.

HTTP request sent, awaiting response... 200 OK

Length: 59054 (58K) [text/html]

index.html: Permission denied

Cannot write to ?.ndex.html?.(Success).

说明:

1)不能用curl替换wget命令发起请求,会报无法进行SSH连接,至于为何,我也不清楚。

$ curl https://xxx.sf-express.com/

curl: (35) SSL connect error

2)如上,我们可以很清楚的看到请求过程,先是本地DNS解析,->然后通过443端口,请求连接到目标主机->接着,发送HTTP请求,-->等待服务器返回

进一步验证,直接发送请求,不过这一次不通过域名访问,直接通过IP访问。

$ wget https://10.202.88.151/

--2017-10-24 17:09:24--  https://10.202.88.151/

Connecting to 10.202.88.151:443... connected.

ERROR: certificate common name ?.engta.sf-express.com?.doesn't match requested host name ?.0.202.88.151?.

To connect to 10.202.88.151 insecurely, use ?.-no-check-certificate?.

说明:如上,这里利用了“服务器返回证书中包含有效网址,客户端校验证书时会比较请求的网址和服务器给的证书中的网址是否一致”这个特性,来验证证书是否正常运作。

大致原理

-> 客户端发送https请求,把自身支持的秘钥算法套件发送给服务器

-> 服务器判断自身是否支持该算法套件,如果支持则返回证书信息(本质为公钥,包含了证书颁发机构,网址,过期时间等) ,否则断开连接,

-> 客户端解析证书(通过TLS协议来完成),验证证书是否有效。如果异常,则会提示是否安装证书,常见的就是浏览器搜索栏左侧出现“X”告警按钮等

-> 如果证书有效、或者是授信安装证书后,开始传送加密信息(用证书加密后的随机值,供加解密使用)

-> 服务端通过私钥解密加密信息,得到客户端发送来的随机值,然后把内容通过该值进行对称加密。这样一来,除非知道私钥,否则是无法获取加密内容的。

-> 服务端返回加密后的内容

-> 客户端通过前面提到的随机值对加密信息进行解密

网络基础 记一次HTTPS证书验证测试过程的更多相关文章

  1. Retrofit+OKHttp忽略https证书验证

    记录这个的原因,是因为很多时候,因为后台配置的证书不正确导致APP访问不到服务器数据,导致影响自身的开发进度.没几行代码,逻辑也清晰,所以下面就直接贴出工具类吧: package huolongluo ...

  2. java httpclient跳过https证书验证

    httpclien调用skipHttpsUtil得wrapClient方法跳过https证书验证 SkipHttpsUtil  skipHttpsUtil=new SkipHttpsUtil();   ...

  3. 【腾讯Bugly干货分享】iOS 中 HTTPS 证书验证浅析

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/-fLLTtip509K6pNOTkflPQ 导语 本 ...

  4. iOS 绕过https证书验证 请求数据

    HTTPS和HTTP: 1.https协议需要到ca申请证书,一般免费证书很少,需要交费. 2.http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议. 3.http ...

  5. 解决https证书验证不通过的问题

    1.报错信息 java.security.cert.CertificateException: No name matching api.weibo.com found; nested excepti ...

  6. .net core中引用webservice,并忽略https证书验证

    1.打开vs, 工具-->扩展和更新 下载这个 2. 在admin下右键,添加-->connected service 选择wsdl文件路径,或者服务的url,比如https://**** ...

  7. 解决 https 证书验证不通过的问题

    解决的办法:忽略服务端和客户端的证书校验即可.java 提供的相关的类. 通过重写TrustManager的checkClientTrusted(检查客户端证书信任)和checkServerTrust ...

  8. SVN提示https证书验证失败问题svn: E230001: Server SSL certificate verification failed:

    最近在使用Idea 检出 svn项目时,出现了如下的画面 显示需要授权证书,需要证书路径 搜索网上的解决方式:无非以下几种 1.File->Settings->Version Contro ...

  9. #WEB安全基础 : HTTP协议 | 0x16 HTTPS:证书,证书,全是证书

    现在想做点什么事都需要证书,要不就会让我们回忆起一个典故:滥竽充数 HTTPS使用了公开密钥加密,如何保证公开密钥就是真正的公开密钥呢?攻击者可能会替换公开密钥,这时候就需要验证,所以它采用了数字证书 ...

随机推荐

  1. 【app】Hybrid?Native?不知道你就out了!

    Hybrid?是个啥? 相信大家在平常生活中也会经常见到这个词,比如现在比较火的hybrid汽车(混合动力汽车) 那如果是针对于App而言呢? 那就要从App的分类说起了 目前主流应用程序大体分为三类 ...

  2. 使用Docker发布DNC项目

    项目结构 可以忽略中间三个Console项目 ApiCenter 是一个WebAPI项目,引用了NLog.MQ项目 ApiCenter使用5001端口 public static IWebHost B ...

  3. 在vue项目中添加特殊字体

    这里的特殊字体,指的是一般用户电脑未安装到本地的字体,要引入这样的字体,首先需要把字体文件下载下来. 就像上图这样的,ttf格式的,然后在项目里添加它. 然后我们在font.css里用@font-fa ...

  4. ZOJ Problem Set - 3708 Density of Power Network

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3708 #include <stdio.h> #include ...

  5. 如何正确的在项目中接入微信JS-SDK

    微信JS-SDK的功能 如果你点进来,那么我相信你应该知道微信的JS-SDK可以用来做什么了.微信的官方文档描述如下. 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. ...

  6. Netty源码分析(二):服务端启动

    上一篇粗略的介绍了一下netty,本篇将详细介绍Netty的服务器的启动过程. ServerBootstrap 看过上篇事例的人,可以知道ServerBootstrap是Netty服务端启动中扮演着一 ...

  7. leetcode — count-and-say

    import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Source : https://o ...

  8. vue的路由映射问题

    遇到的问题 今天在项目中遇到了一个问题,明明在Router文件夹下的路由js映射文件中,配置好了,如下: // 生日贺卡 { path: 'birthdayRemind', component: lo ...

  9. 网络协议抓包分析——IP互联网协议

    前言 IP协议是位于OSI模型的第三层协议,其主要目的就是使得网络间可以相互通信.在这一层上运行的协议不止IP协议,但是使用最为广泛的就是互联网协议. 什么是IP数据报 TCP/IP协议定义了一个在因 ...

  10. Django 系列博客(一)

    Django 系列博客(一) 前言 学习了 python 这么久,终于到了Django 框架.这可以说是 python 名气最大的web 框架了,那么从今天开始会开始从 Django框架的安装到使用一 ...