简介

它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安 全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是像HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用 40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。

也就是说它的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

HTTPS和HTTP的区别

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。

二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

HTTPS 传输协议原理介绍

我们常常在使用网上银行时看到的连接都是以“ https” 开始的,那么这个 https 是什么呢?

这其实是表示目前连接使用了 SSL 进行加密,能保证客户端到服务器端的通信都在被保护起

来,那么浏览器是如果实现的呢?下面我们介绍一下 SSL 的基本实现方法。

首先我们有两种基本的加解密算法类型:对称加密,非对称加密(公私钥加密),现在

介绍一下这两种加密算法的特点:

对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密

算法有 DES 、 AES 等,示意图如下:

对称加密

非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),

加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密

速度较慢,典型的非对称加密算法有 RSA 、 DSA 等,示意图如下:

非对称加密图

根据上面的两种加密方法,现在我们就可以设计一种无法让他人在互联网上知道你的通

讯信息的加密方法:

1. 在服务器端存在一个公钥及私钥

2. 客户端从服务器取得这个公钥

3. 客户端产生一个随机的密钥

4. 客户端通过公钥对密钥加密(非对称加密)

5. 客户端发送到服务器端

6. 服务器端接受这个密钥并且以后的服务器端和客户端的数据全部通过这个密钥加

密(对称加密)

HTTPS 通信过程的时序图如下:

HTTPS 通信时序图

正如上图所示,我们能保证下面几点:

1. 客户端产生的密钥只有客户端和服务器端能得到

2. 加密的数据只有客户端和服务器端才能得到明文

3. 客户端到服务端的通信是安全的

利用https实现站点的访问的更多相关文章

  1. windows server2012之部署HTTPS安全站点

    现在的互联网越来越重视网络安全方面的内容,像我们日常生活中浏览的网上银行网站等涉及安全的你都会发现有https 的标志出现,在URL前加https://前缀表明是用SSL加密的. 你的电脑与服务器之间 ...

  2. Git中如何利用生成SSH个人公钥访问git仓库

    Git中如何利用生成SSH个人公钥访问git仓库方法(这里以coding平台为例): 1. 获取 SSH 协议地址 在项目的代码页面点击 SSH 切换到 SSH 协议, 获得访问地址, 请使用这个地址 ...

  3. HTTPS的内网访问和访问外网

    https://launchpad.support.sap.com/#/notes/2461900 https://wiki.scn.sap.com/wiki/display/Security/Tro ...

  4. 利用开机账户登录“轻松访问”创建Windows后门

    利用开机账户登录“轻松访问”创建Windows后门 实验原理: 利用登录账户界面的“轻松访问”中的“放大镜”,把它替换为cmd.exe程序,实现在不登录的情况下打开命令提示符,并进行一些操作(打开的c ...

  5. 如何让springboot打包的项目部署在阿里云上使用https和http方式访问

    前言 问题描述:怎么让springboot部署在服务器上使用https协议方式访问我们的接口或者域名,目的是某些平台请求的是https协议,而不是https 部署环境:阿里云 centos7服务器,s ...

  6. Python基础(三):简化除法判断、分析apache访问日志、扫描存活主机、利用多线程实现ssh并发访问

    一.简化除法判断 目标: 编写mydiv.py脚本,主要要求如下: 提示用户输入一个数字作为除数 如果用户按下Ctrl+C或Ctrl+D则退出程序 如果用户输入非数字字符,提示用户应该输入数字 如果用 ...

  7. CentOS7系统下配置nginx及https安全站点

    本文主要演示在CentOS7系统下OpenSSL的使用方式,以及Nginx在测centOS下的证书配置方式 注意:生成服务器端证书时必须在CN字段中如实输入站点的访问地址 ,如果是域名就写域名,ip访 ...

  8. cn.arxiv.org || https://arxiv.org/xxxx 访问失败

    https://arxiv.org/xxxx 访问失败解决方法问题:原论文网址::https://arxiv.org/xxxx 无法访问 解决办法:原论文网址::https://arxiv.org/+ ...

  9. 站点默认访问https

    需求简介 现在网站都是https访问了,再用http会显得很low,所以我要把网站设置为默认的https访问. 1nginx的rewrite方法 这应该是大家最容易想到的方法,将所有的http请求通过 ...

随机推荐

  1. NameNode工作机制

    NameNode工作机制

  2. hdu4742

    题意:给定3维的n(<=100000)个点,求最长不下降子序列长度(对于1和2两个点,2可以放在1后面,x1<=x2,y1<=y2,z1<=z2 ),并求出有多少种方案. 思路 ...

  3. 转:mysql触发器

    原文地址:http://www.cnblogs.com/nicholas_f/archive/2009/09/22/1572050.html CREATE TRIGGER <触发器名称>  ...

  4. Swift3 重写一个带占位符的textView

    class PlaceStrTextView: UIView,UITextViewDelegate{ var palceStr = "即将输入的信息" //站位文字 var inp ...

  5. Jmeter录制badboy

    一般自己手动的设置JMeter会比较麻烦,如果一边操作页面,提交表单,一边能够自动生成JMeter的脚本,则非常方便: BadBoy:录制JMeter脚本: Donwload URL:http://w ...

  6. 停止一个java的线程执行

    找了一个停止线程运行的方法,代码如下: public class stopThread extends Thread { private volatile boolean stop = false; ...

  7. 实验8 LCD8*8点阵

    1.控制点阵红绿交替显示,分别从上到下,从左到右循环闪烁三次 接线: P0接J12.P1接J20.P2接J19 /** 1.控制点阵红绿交替显示,分别从上到下,从左到右循环闪烁三次 **/ #incl ...

  8. docker实用命令集合

    1. 访问docker中的MySQL数据库: docker exec -it test_mysql_1 mysql -u root -p 2. 用docker命令导入或导出mysql数据: 导出doc ...

  9. 数据库索引、B树、B+树

    数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询.更新数据库表中数据.索引的实现通常使用B树及其变种B+树. 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某 ...

  10. .NET MVC 学习笔记(五)— Data Validation

    .NET MVC 学习笔记(五)—— Data Validation 在实际应用中,我们需要对数据进行增查改删业务,在添加和修改过程中,无论你编写什么样的网页程序,都需要对用户的数据进行验证,以确数据 ...