ssl协议以及生成
一、https协议
https是一安全为目标的httpt通道,简单讲师http的安全版。即http下加入ssl层,https的安全基础是ssl,因此加密的详细内容就需要ssl。
http和https的区别
超文本传输协议http协议被用于在浏览器和网站服务器之间传递信息。http协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了浏览器和网站服务器之间的传输报文,就可以直接读懂其中的消息,因此http协议不适合传输一些敏感信息,比如信用卡号、密码等。
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTPS和HTTP的区别主要为以下四点:
1、https协议需要到ca申请证书,一般免费证书很少,需要交费。
2、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证
的网络协议,比http协议安全。
二、ssl协议
如上图所示,简述如下:
1、客户端生成一个随机数random_client,并且和支持ssl协议版本、加密类型等发送给服务端;
2、服务端生成一个随机数random_server,并且和证书发送给客户端(证书中包含着公钥)
3、客户端验证server的证书,验证成功则认定其身份开始连接,否则断开连接。当验证成功后,客户端随机生成一个“对称密码”,使用公钥加密发送给服务端;
4、服务端用自己的私钥解密,此时服务端和客户端都拥有了三个要素:random-client、random-server和对称密码,用这三个要素通过算法的出session key
5、两者安全通道已经建立,以后的交流都会校验session key
三 CA证书
1、生成密钥、证书
//生成服务器端私钥
genrsa -out server.key 1024
//生成服务器公钥
rsa -in server.key -pubout -out server.pem
//生成客户端端私钥
genrsa -out client.key 1024
//生成客户端公钥
rsa -in client.key -pubout -out client.pem
2、生成CA证书
genrsa -out ca.key 1024
req -new -key ca.key -out ca.csr
x509 -req -in ca.csr -signkey -out ca.crt
执行到第二步会让你 填写一些个人消息 比如公司 地址 名称等
3、生成服务器端证书和客户端证书
服务器端需要向 CA 机构申请签名证书,在申请签名证书之前依然是创建自己的 CSR 文件
req -new -key server.key -out server.csr
//向自己的 CA 机构申请证书,签名过程需要 CA 的证书和私钥参与,
//最终颁发一个带有 CA 签名的证书
x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
//client 端
req -new -key client.key -out client.csr
//client 端到 CA 签名
x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -out client.crt
此时,我们就生成了证书了
本地测试下
效果:
ssl协议以及生成的更多相关文章
- 配置Tomcat使用https协议(配置SSL协议)
配置Tomcat使用https协议(配置SSL协议) 2014-01-20 16:38 58915人阅读 评论(3) 收藏 举报 转载地址:http://ln-ydc.iteye.com/blog/1 ...
- 【转】配置Tomcat使用https协议(配置SSL协议)
转载地址:http://ln-ydc.iteye.com/blog/1330674 内容概览: 如果希望 Tomcat 支持 Https,主要的工作是配置 SSL 协议 1.生成安全证书 2.配置to ...
- 【转】SSL协议、SET协议、HTTPS简介
一.SSL协议简介 SSL是Secure Socket Layer的缩写,中文名为安全套接层协议层.使用该协议后,您提交的所有数据会首先加密后,再提交到网易邮箱,从而可以有效防止黑客盗取您的用户名.密 ...
- 基于SSL协议的双向认证 - SSL协议 [1]
1 概要说明 在互联网通信方式中,目前用的最广泛的是HTTPS配合SSL和数字证书来保证传输和认证安全了. 2 详细介绍 2.1 HTTPS HTTPS全称:Hypertext Transf ...
- SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)
原文地址:http://www.cnblogs.com/jifeng/archive/2010/11/30/1891779.html SSL协议的工作流程: 服务器认证阶段:1)客户端向服务器发送一个 ...
- SSL协议详解
背景介绍 最近在看<密码学与网络安全>相关的书籍,这篇文章主要详细介绍一下著名的网络安全协议SSL. 在开始SSl介绍之前,先给大家介绍几个密码学的概念和相关的知识. 1.密 ...
- SSL协议运行机制
SSL/TLS协议运行机制 一.作用 不使用SSL/TLS的HTTP通信,就是不加密的通信.所有信息明文传播,带来了三大风险. (1) 窃听风险(eavesdropping):第三方可以获知通信内容. ...
- 转:SSL协议详解
http://kb.cnblogs.com/page/162080/ 背景介绍 最近在看<密码学与网络安全>相关的书籍,这篇文章主要详细介绍一下著名的网络安全协议SSL. 在开始SS ...
- 谈Delphi中SSL协议的应用(好多相关文章)
摘要:本文主要介绍如何在Delphi中使用SSL协议.一共分为七个部分:(1)SSL协议是什么?(2)Delphi中如何使用SSL协议?(3)SSL客户端编程实例.(4)SSL服务端编程实例.(5)S ...
随机推荐
- 获取MVC中Controller下的Action参数异常
我现在做的一个项目有一个这样的需求, 比如有一个页面需要一个Guid类型的参数: public ActionResult Index(Guid id) { //doing something ... ...
- python之路第二天 随便记记 今天主要很郁闷
为何要有操作系统 为了让程序员更轻松的完成命令电脑工作而存在的,控制硬件,服务于软件. 操作系统的位置 操作系统位于软件和硬件之间.操作系统由内核(运行于内核态,控制硬件)和系统调用(运行于用户态,为 ...
- 用EditPlus编辑器配置C#开发环境
用EditPlus配置配置C#开发环境... -------------------- ---------------------------- 配置步骤: 1.打开EditPlus,找到 工具 —& ...
- java web轻量级开发面试教程读书笔记:建索引时我们需要权衡的因素
场景一,数据表规模不大,就几千行,即使不建索引,查询语句的返回时间也不长,这时建索引的意义就不大.当然,若就几千行,索引所占的空间也不多,所以这种情况下,顶多属于"性价比"不高. ...
- python3 安装及项目管理安装
python3 一.下载安装 地址:https://www.python.org/downloads/ 安装:傻瓜式安装:我的目录如下 二.环境配置 [右键计算机]-->[属性]-->[高 ...
- jdbc hibernate myBatis比较
jdbc hibernate myBatis比较 jdbc 优点:性能高,易掌握 缺点:代码繁琐 hibernate 优点:不用写sql,代码简洁 缺点:性能不好 自动生成的sql效率低下(复杂业务) ...
- 对Java的数据类型和运算符的理解
我知道千里之行始于足下,包含着对编程的兴趣,希望能够在这个平台上记录下我学习过程中的点点滴滴! Java的基本构造 标识符和关键字 标识符规则 标识符就是用于给程序中变量,类.方法命名的符号 1.标识 ...
- C#构造函数、操作符重载以及自定义类型转换
构造器 构造器(构造函数)是将类型的实例初始化的特殊方法.构造器可分为实例构造器和类型构造器,本节将详细介绍有关内容. 实例构造器 顾名思义,实例构造器的作用就是对类型的实例进行初始化.如果类没有显示 ...
- shell脚本进阶之循环判断
p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; f ...
- 个人作业3——个人总结(Alpha阶段)
个人总结 Alpha阶段总结: 起初关于手机app的开发真的一无所知,选了一条较远的路走(使用 Android Studio 来开发 Android 应用更加方便,而我们选用 Eclipse 开发 A ...