初步认识https与http

原创 2016年08月30日 16:38:59

区别

  • https协议需要到ca申请证书,一般免费证书很少,需要交费。
  • http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
  • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

https 双向验证与单向验证

单向认证只要求站点部署了ssl证书就行,任何用户都可以去访问(IP被限制除外等),只是服务端提供了身份认证。而双向认证则是需要是服务端需要客户端提供身份认证,只能是服务端允许的客户能去访问,安全性相对于要高一些
双向认证SSL 协议的具体通讯过程,这种情况要求服务器和客户端双方都有证书。 单向认证SSL 协议不需要客户端拥有CA证书,以及在协商对称密码方案,对称通话密钥时,服务器发送给客户端的是没有加过密的(这并不影响SSL过程的安全性)密码方案。这样,双方具体的通讯内容,就是加密过的数据。如果有第三方攻击,获得的只是加密的数据,第三方要获得有用的信息,就需要对加密的数据进行解密,这时候的安全就依赖于密码方案的安全。而幸运的是,目前所用的密码方案,只要通讯密钥长度足够的长,就足够的安全。这也是我们强调要求使用128位加密通讯的原因。
一般Web应用都是采用单向认证的,原因很简单,用户数目广泛,且无需做在通讯层做用户身份验证,一般都在应用逻辑层来保证用户的合法登入。但如果是企业应用对接,情况就不一样,可能会要求对客户端(相对而言)做身份验证。这时就需要做双向认证。百度知道

https各种证书生成与客户端配置——【原文】

1、生成服务器证书库
keytool -validity 365 -genkey -v -alias server -keyalg RSA -keystore D:\ssl\server.keystore -dname “CN=127.0.0.1,OU=rongyiwang,O=rongyiwang,L=Shanghai,ST=Shanghai,c=cn” -storepass 123456 -keypass 123456

2、生成客户端证书库
keytool -validity 365 -genkeypair -v -alias client -keyalg RSA -storetype PKCS12 -keystore D:\ssl\client.p12 -dname “CN=client,OU=rongyiwang,O=rongyiwang,L=Shanghai,ST=Shanghai,c=cn” -storepass 123456 -keypass 123456

3、从客户端证书库中导出客户端证书
keytool -export -v -alias client -keystore D:\ssl\client.p12 -storetype PKCS12 -storepass 123456 -rfc -file D:\ssl\client.cer

4、从服务器证书库中导出服务器证书
keytool -export -v -alias server -keystore D:\ssl\server.keystore -storepass 123456 -rfc -file D:\ssl\server.cer

5、生成客户端信任证书库(由服务端证书生成的证书库)
keytool -import -v -alias server -file D:\ssl\server.cer -keystore D:\ssl\client.truststore -storepass 123456

6、将客户端证书导入到服务器证书库(使得服务器信任客户端证书)
keytool -import -v -alias client -file D:\ssl\client.cer -keystore D:\ssl\server.keystore -storepass 123456

7、查看证书库中的全部证书
keytool -list -keystore D:\ssl\server.keystore -storepass 123456

过程中会用到一个bcprov-ext-jdk15on-146.jar的工具包,jdk中是没有的——点击下载
命令模式中,需要进入到该jar包所在目录下,或者参考此处

HTML初步认识

HTML初步认识本篇博客给大家带来html最基础的东西,也就是初步认识html,打算从以下几个方面给大家介绍: 认识什么是纯文本文件txt HTML是负责描述文档语义的语言 HTML骨架和基本语法 可...
  • u010624986
  • u010624986
  • 2016年12月16日 23:46
  • 519

初步认识linux与入门

习惯了使用windows以后接触另外一个操作系统似乎不太习惯,考虑到linux众多优越性,首先就说说为什么学习linux。在接触linux之前先来说说我对linux的理解。1. linux完全开源,免...
  • cai2016
  • cai2016
  • 2016年07月10日 18:27
  • 829

webvr 的初步认识

webvr 的初步认识
  • qq_16090117
  • qq_16090117
  • 2016年05月11日 20:15
  • 724

day 1:对Java的初步认识(对于环境变量的理解等)

Java后端方向的基本就业方向如下几部分:移动互联网、互联网金融、智能家居、互联网教育等等 Java的最大特性:一次编译,到处运行。原因归功于虚拟机JVM机制,JVM虚拟机保证了在不同的平台上可以使用...
  • qq_37366958
  • qq_37366958
  • 2018年01月02日 19:32
  • 58

1.新手关于linux的初步认识

首先,我认识到,linux是一种操作系统,与windows,unix类似。当然,目前最受欢迎的操作系统为unix。我了解到,Linux是unix的一个版本。可谓十分相近,但也有不同之处。主要区别在于u...
  • einsass
  • einsass
  • 2017年02月27日 18:10
  • 87

Linux初步认识

Linux在硬件开发,服务器架设中使用广泛,学习Linux对于未来的职业发展相信会有很大帮助。对于初学者来说学习Linux可能会把握不住方向,同时为了加强自身记忆,在此把我的学习过程记录下来以便未来查...
  • Hulkhaoke
  • Hulkhaoke
  • 2017年06月28日 14:36
  • 200

关于Linux的初步认识

首先,是关于Linux和Unix的关系问题。Linux是基于Unix的. 简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这...
  • wu378798621
  • wu378798621
  • 2017年02月23日 21:48
  • 76

C语言及程序设计基础 课程主页

第一部分 引言及体验 知识点 学习资源 1.1 人人学点程序设计 问卷 1.2 程序设计语言 自测 1.3 搭建C语言的运行平台 实践要求:按视频指导搭建编程环境并运行程...
  • sxhelijian
  • sxhelijian
  • 2015年07月07日 17:06
  • 2530

一、OpenStack入门 之 初步认识

OpenStack入门 之 初步认识写在前面从 OpenStack 基础知识开始学起,剖析 OpenStack 架构,分析 OpenStack 的各个组件的功能、原理和使用方法,通过实战演练来掌握 O...
  • Heartyhu
  • Heartyhu
  • 2016年03月30日 12:59
  • 3605

HTTPS和HTTP的区别

什么是 HTTPS? HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web 协议。 你也可以说:HTTPS = H...
  • whatday
  • whatday
  • 2014年07月26日 17:01
  • 41611
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:初步认识https与http
举报原因:
原因补充:

(最多只允许输入30个字)