Https是什么?
HTTPS是Http Over SSL,简单来说就是HTTP的安全版本,在http之上使用TLS,SSL加密协议。
HTTPS实质是在HTTP基础上使用非对称加密相互生成并传递对称加密的秘钥,然后使用这个秘钥进行后续的内容传输。
 
为什么要使用HTTPS
更安全,防止DNS劫持,防止钓鱼网站,阻止运营商广告。针对一些假网站,如jia.baidu.com之类的。
能够实现:内容加密,身份认证,数据完整性校验三大功能。
 
 
缺点?
更耗时,需要消耗浏览器-服务器双方的计算资源。 一次完全 TLS 握手,密钥交换时的非对称解密计算量占整个握手过程的 90% 以上
 
实现原理:
使用算法:
非对称加密算法:RSA,DSA/DSS
对称加密算法:AES,RC4,3DES
HASH算法:MD5,SHA1,SHA256
其中浏览器优先支持 RSA 和 ECDH_RSA 密钥交换算法
其中的 公钥加密目前只能用来作密钥交换或者内容签名,不适合用来做应用层传输内容的加解密。
 
下面是详细过程:
传统TCP三次握手
HTTPs的握手过程:
一:浏览器请求:
     发送支持的TLS等协议,列举支持的加密算法,压缩算法。
二:服务器确认:
     发送服务器证书,带着服务器的公钥,确认使用的加密算法,确认安全协议。
三:浏览器核实:
     浏览器首先验证证书真假,然后从证书中获取公钥,用公钥加密随机数,再用随机数加密消息。并发送信息。和hash验证值
四:服务器再确认:
     服务器使用私钥解密随机数,在用随机数解密握手消息,并验证Hash是否与浏览器发送的一致。使用这个随机数加密一段握手消息发送给浏览器。告知可以传输数据了。
五:传输数据。
     双发使用浏览器之前生成的随机数密码进行加密传输。
 
怎么用:
 
Tomcat中使用HTTPS
1.使用jdk keytool生成证书.
cmd命令cd %JAVA_HOME%/bin/ 进入jre环境
输入命令keytool -genkey -alias tomcat -keyalg RSA -keystore D:\Tomcat\tomcat.keystore
在D盘生成证书。
 找到tomcat路径的conf文件夹,打开server.xml.
搜索TLS字样的节点,去掉注释,添加
 keystoreFile= "D:\Tomcat\tomcat.keystore" keystorePass="tomcat"
两处,这两处要与生成的名字和路径一致,保存。
在conf中的web.xml中 </welcome-file-list>节点后面添加
<login-config>
<!--AuthorizationsettingforSSL-->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>ClientCertUsers-onlyArea</realm-name>
</login-config>
<security-constraint>
<!--AuthorizationsettingforSSL-->
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
 
强制所有的请求都通过https
 
IIS 中配置https
以我的阿里云server 2008为例。
在跟节点选择服务器证书。
创建自签名证书
完成之后找到一个网站,编辑绑定
添加证书
完成之后就通过https浏览了。
当然这只是自己测试用的,网站中使用的话需要购买CA机构的证书,参考:
 
 
 
 
参考:
 
 

HTTPS简述的更多相关文章

  1. Ubuntu下配置apache开启https

    一.HTTPS简述随着网络的日常,信息安全越来越重要,传统的网站都是http协议明文传输,而HTTPS协议是由SSL+HTTP协议构建的可进行加密传输.身份认证的网络协议,比http协议安全. 那ht ...

  2. HTTP就是这么简单

    为什么要学HTTP? 我们绝大多数的Web应用都是基于HTTP来进行开发的.我们对Web的操作都是通过HTTP协议来进行传输数据的. 简单来说,HTTP协议就是客户端和服务器交互的一种通迅的格式. H ...

  3. 【http】认识HTTP

    HTTP基础概念 我们学计算机网络的时候就知道,我们把计算机网络分层了5层,一般我们现在用的都是TCP/IP这么一个分层结构. 虽然官方的是ISO 提出的7层结构,但是仅仅是理论基础,在实际上大多人都 ...

  4. 网络知识杂谈 - https - 原理简述

    概述 简单描述 https 尽量介绍它的原理 实际的机制, 可能会更加复杂一些... 背景 这玩意, 困扰我好多年了 今天开始, 想做个了断 之前工作也接触过, 但从我的角度来说, 认识很浅 会配置 ...

  5. HTTPS原理简述

    角色:   A,B,Server,Client,中间窃听者,数字证书签发机构(CA) 工具:对称加密算法,非对称加密算法,数字签名,数字证书 第一步,爱丽丝给出协议版本号.一个客户端生成的随机数(Cl ...

  6. 简述Java中Http/Https请求监听方法

    一.工欲善其事必先利其器 做Web开发的人总免不了与Http/Https请求打交道,很多时候我们都希望能够直观的的看到我们发送的请求参数和服务器返回的响应信息,这个时候就需要借助于某些工具啦.本文将采 ...

  7. 简述 OAuth 2.0 的运作流程

    本文将以用户使用 github 登录网站留言为例,简述 OAuth 2.0 的运作流程. 假如我有一个网站,你是我网站上的访客,看了文章想留言表示「朕已阅」,留言时发现有这个网站的帐号才能够留言,此时 ...

  8. JavaScript单线程和浏览器事件循环简述

    JavaScript单线程 在上篇博客<Promise的前世今生和妙用技巧>的开篇中,我们曾简述了JavaScript的单线程机制和浏览器的事件模型.应很多网友的回复,在这篇文章中将继续展 ...

  9. https简介/原理/部署【转】

    转自: http://han.guokai.blog.163.com/blog/static/136718271201211631456811/ http://www.barretlee.com/bl ...

随机推荐

  1. PHP 检测机器人,屏蔽内页

    PHP 检测机器人,屏蔽内页 <?php // SpiderHelper::rewrite301(); // SpiderHelper::showRobotTxt(); class Spider ...

  2. uct框架数据库sql文件导入错误之 sql_mode

    uct框架在导入sql文件时可能会出现一种错误 ERROR 1101 (42000): BLOB/TEXT column 'brief' can't have a default value 这是由于 ...

  3. php实现设计模式之 工厂方法模式

    <?php /* * *工厂方法模式,创建型模式 定义一个用于创建对象的工厂接口,让子类决定实例化哪一个类.Factory Method使用一个类的实例化延迟到其子类 * * 四个角色: * 工 ...

  4. 又到周末了,我们一起来研究【浏览器如何检测是否安装app】吧

    前言 扯淡 这个月比较倒霉,我送了女朋友一台笔记本电脑作为生日礼物,结果15天一过电脑就坏了,悲剧的我还把电脑盒子给扔了!淘宝不给换更不给退 于是被女朋友臭骂了一过星期后,今天本来在公司有任务的,但是 ...

  5. 【模块化编程】理解requireJS-实现一个简单的模块加载器

    在前文中我们不止一次强调过模块化编程的重要性,以及其可以解决的问题: ① 解决单文件变量命名冲突问题 ② 解决前端多人协作问题 ③ 解决文件依赖问题 ④ 按需加载(这个说法其实很假了) ⑤ ..... ...

  6. JavaScript函数的4种调用方法详解

    在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C#或其他描述性语言那样仅仅作为一个模块来使用.函数有四种调用模式,分别是:函数调用形式.方法调用形式.构造 ...

  7. ArcGIS JS 学习笔记4 实现地图联动

    1.开篇 守望屁股实在太好玩了,所以最近有点懒,这次就先写个简单的来凑一下数.这次我的模仿目标是天地图的地图联动. 天地的地图联动不仅地图有联动,而且鼠标也有联动,我就照着这个目标进行山寨. 2.准备 ...

  8. We refined export to Excel for SharePoint

    http://sysmagazine.com/posts/208948/ http://sharepointwikipedia.blogspot.kr/2013/05/export-to-spread ...

  9. HIVE 在执行大量数据JOIN的时候,容易产生内存不足的情况

    情况 很多时间遇到 "Caused by: java.lang.OutOfMemoryError: Java heap space" Caused by: java.lang.Ou ...

  10. 【转】linux 定时执行shell脚本

    在oracle 中可以利用dbms_job包定时执行pl/sql.sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成 本文讲述crontab具体用法,以供备忘. 在oracle ...