1.单向认证,就是传输的数据加密过了,但是不会校验客户端的来源

2.双向认证,如果客户端浏览器没有导入客户端证书,是访问不了web系统的,找不到地址,想要用系统的人没有证书就访问不了系统HTTPS概念

方法/步骤

  1. 1

    说在前面

  2. 2

    HTTPS概念

  3. 3

    HTTPS和HTTP的区别

  4. 4

    HTTPS的作用

  5. 5

    SSL简介

  6. 6

    SSL提供的服务

  7. 7

    SSL协议的握手过程

    SSL 协议既用到了公钥加密技术又用到了对称加密技术,对称加密技术虽然比公钥加密技术的速度快,可是公钥加密技术提供了更好的身份认证技术。SSL 的握手协议非常有效的让客户和服务器之间完成相互之间的身份认证,其主要过程如下:

      ①客户端的浏览器向服务器传送客户端SSL协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息。

      ②服务器向客户端传送SSL协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器还将向客户端传送自己的证书。

      ③客户利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行第四步。

      ④用户端随机产生一个用于后面通讯的“对称密码”,然后用服务器的公钥(服务器的公钥从步骤②中的服务器的证书中获得)对其加密,然后传给服务器。

      ⑤服务器用私钥解密“对称密码”(此处的公钥和私钥是相互关联的,公钥加密的数据只能用私钥解密,私钥只在服务器端保留。详细请参看: http://zh.wikipedia.org/wiki/RSA%E7%AE%97%E6%B3%95),然后用其作为服务器和客户端的“通话密码”加解密通讯。同时在SSL 通讯过程中还要完成数据通讯的完整性,防止数据通讯中的任何变化。

      ⑥客户端向服务器端发出信息,指明后面的数据通讯将使用的步骤⑤中的主密码为对称密钥,同时通知服务器客户端的握手过程结束。

      ⑦服务器向客户端发出信息,指明后面的数据通讯将使用的步骤⑤中的主密码为对称密钥,同时通知客户端服务器端的握手过程结束。

      ⑧SSL 的握手部分结束,SSL 安全通道的数据通讯开始,客户和服务器开始使用相同的对称密钥进行数据通讯,同时进行通讯完整性的检验。

  8. 8

    HTTPS_SSL配置的步骤:

    服务器端单向认证:

    第一步:进入jdk的安装文件路径下面的bin目录;

    第二步:在bin目录下输入以下命令

    keytool -genkey -v -alias mykey -keyalg RSA -validity 3650 -keystore c:\sdust.keystore

    -dname "CN=你的ip,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass 123456 -keypass 123456

    说明:

    keytool 是JDK提供的证书生成工具,所有参数的用法参见keytool –help

    -genkey 创建新证书

    -v详细信息

    -alias以”mykey”作为该证书的别名。这里可以根据需要修改

    -keyalgRSA 指定算法

    -keysize  指定算法加密后密钥长度

    -keystorec:\sdust.keystore保存路径及文件名

    -validity3650证书有效期,单位为天

    CN=你的ip,OU=cn,O=cn,L=cn,ST=cn,c=cn 基本信息的配置

    CN=你的ip 这个配置务必注意

    -storepass 123456789 -keypass 123456789 密码设置

    第三步:生成的文件如下图所示

    第四步:配置tomcat的server.xml文件[1]redirectPort端口号改为:443

    <Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="443" useBodyEncodingForURI="true"/>

    [2]SSL HTTP/1.1 Connector定义的地方,修改端口号为:443

    <Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"

    minSpareThreads="5" maxSpareThreads="75"

    enableLookups="true" disableUploadTimeout="true"

    acceptCount="100"  maxThreads="200" SSLEnabled="true" scheme="https" secure="true"

    keystoreFile="C:/sdust.keystore" keystorePass="123456"

    clientAuth="false" sslProtocol="TLS" />

    属性说明:clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证keystoreFile:服务器证书文件路径keystorePass:服务器证书密码truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书truststorePass:根证书密码

    [3] AJP 1.3 Connector定义的地方,修改redirectPort为443

    <Connector port="8009" protocol="AJP/1.3" redirectPort="443"/>

    第五步: 重新启动Tomcat就可以了。

    附加内容:若要使得应用只能通过https的方式访问,在该项目的web.xml文件中加入如下代码:

    <login-config><!-- Authorization setting for SSL --><auth-method>CLIENT-CERT</auth-method><realm-name>Client Cert Users-only Area</realm-name></login-config><security-constraint><!-- Authorization setting for SSL --><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><!--Require HTTPS for everything except /img (favicon) and /css.--><security-constraint><web-resource-collection><web-resource-name>HTTPSOrHTTP</web-resource-name><url-pattern>*.ico</url-pattern><url-pattern>/img/*</url-pattern><url-pattern>/css/*</url-pattern></web-resource-collection><user-data-constraint><transport-guarantee>NONE</transport-guarantee></user-data-constraint></security-constraint>测试 :在浏览器中输入:https://localhost:8443/,会弹出选择客户端证书界面,点击“确定”,会进入tomcat主页,地址栏后会有“锁”图标,表示本次会话已经通过HTTPS双向验证,接下来的会话过程中所传输的信息都已经过SSL信息加密。

    可能存在的问题:

    Eclipse中启动tomcat7.0,本地tomcat配置文件被eclipse恢复。

    问题是这样的,在eclipse的servers配置项里,将tomcat的启动配置为了use tomcat location,但是每次在eclipse里publish项目都会把本地G:\tomcate7.0\apache-tomcat-7.0.29\conf下的配置文件(如:tomcat-user.xml添加了用户等信息)给重置,也就是里面添加的内容被清空了,回复到原来的样子:

    问题解决方案:

    你eclipse工程列表中应该 还有个 Servers 工程,下面会有Tomcat7的配置文件,你把里面的对应配置文件改了。每次是用这个文件来覆盖,tomcat下面的文件的。

    特定的目录实现https访问

    解决方案:

    在web.xml文件中配置相应的路径

    <security-constraint><!-- Authorization setting for SSL --><web-resource-collection><web-resource-name>SSL</web-resource-name><url-pattern>/login.html</url-pattern></web-resource-collection><user-data-constraint><transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint></security-constraint>

HTTPS_SSL配置的步骤以及原理说明的更多相关文章

  1. HTTPS_SSL apache认证、配置的、步骤以及原理说明

    一 .1.单向认证,就是传输的数据加密过了,但是不会校验客户端的来源 2.双向认证,如果客户端浏览器没有导入客户端证书,是访问不了web系统的,找不到地址,想要用系统的人没有证书就访问不了系统HTTP ...

  2. MHA在线切换的步骤及原理

    在日常工作中,会碰到如下的场景,如mysql数据库升级,主服务器硬件升级等,这个时候就需要将写操作切换到另外一台服务器上,那么如何进行在线切换呢?同时,要求切换过程短,对业务的影响比较小. MHA就提 ...

  3. MySQL高可用方案MHA在线切换的步骤及原理

    在日常工作中,会碰到如下的场景,如mysql数据库升级,主服务器硬件升级等,这个时候就需要将写操作切换到另外一台服务器上,那么如何进行在线切换呢?同时,要求切换过程短,对业务的影响比较小. MHA就提 ...

  4. OPGL+GLFW+GLEW配置详细步骤

    转载自:https://blog.csdn.net/weixin_40921421/article/details/80211813 本文设计的工具包: 链接:https://pan.baidu.co ...

  5. Kali Linux常用服务配置教程DHCP服务原理

    Kali Linux常用服务配置教程DHCP服务原理 动态主机配置协议(Dynamic Host Configuration Protocol,简称DHCP)是一个局域网的网络协议,基于UDP协议工作 ...

  6. SpringMVC配置多视图-内容协商原理

    SpringMVC配置多视图-内容协商原理 2014年03月06日 16:46:59 日积月累_滴水石穿 阅读数:10964更多 个人分类: SpringMVC   Spring Framework ...

  7. Fiddler抓包配置具体步骤

    如何查看手机连接的无线wifi的IP? 打开手机,选择设置->进入设置页面选择WLAN->进入WLAN管理,点击手机已经连接的路由器->点击进入查看,即可看见IP地址 如何查看自己电 ...

  8. Apollo 配置详细步骤(Windows环境)

    一. 准备工作 1.下载 apollo 安装包 下载链接:http://activemq.apache.org/apollo/download.html 2.下载 JavaJDK 安装包 ( apol ...

  9. go1.8之安装配置具体步骤

    操作系统: CentOS 6.9_x64 go语言版本: 1.8.3 安装go 这里直接安装二进制,其它方式请自行搜索. 1.下载并安装go 命令如下: ? 1 2 3 wget https://st ...

随机推荐

  1. 老麦看点:SEO高手的两大秘诀

    一.技术真的是主导因素吗? 很多人站长朋友操作一段网站之后,发现自己的排名还是在渺渺无期,真可谓:“众里寻排名千百度,可是排名却不在阑珊处”,于是我们开始怀疑自己,怀疑自己的技术等,但是我们静下心里仔 ...

  2. 2015 "BestCoder Cup" Champion

    这场比赛我没有参加,不过就算参加了也估计是被完虐.于是看着题解把大部分题目都搞了一遍. T1:Movie(hdu 5214) 题目大意: 给出N个区间,问能否选出3个互不相交的区间. N<=10 ...

  3. 局域网单机部署双tomcat内外网不能访问防火墙问题查出来

    tomcat部署的项目内网访问不了 win7  64 位 控制面板 - 安全 -防火墙-入站规则- 新建规则 选中“端口”按钮,点选“下一步”: 选择“TCP”按钮,在“特定本地端口”输入tomcat ...

  4. python3+任务计划实现的人人影视网站自动签到

    python3+任务计划实现的人人影视网站自动签到 这是一个自动化程度较高的程序,运行本程序后会从chrome中读取cookies用于登录人人影视签到, 并且会自动添加一个windows 任务计划,这 ...

  5. Graphic geometry

    Graphic有3个很重要的属性:geometry.symbol和attributes. •geometry属性定义的是一个几何对象,它是Graphic的基础,因为Graphic要表达的就是这个几何对 ...

  6. ViewHolder简洁写法

    ViewHolder holder = null;         if(convertView == null){                 convertView = mInflater.i ...

  7. 团队开发——冲刺2.c

    冲刺阶段二(第三天) 1.昨天做了什么? 把“开始游戏”.“退出游戏”.“取消”等文字按钮加工成游戏图标,美化游戏界面背景. 2.今天准备做什么? 因为收集的图标时比较杂乱,没有针对性,把游戏图标进行 ...

  8. BZOJ 2763 分层图最短路

    突然发现我不会分层图最短路,写一发. 就是同层中用双向边相连,用单向边连下一层 #include <cstdio> #include <algorithm> #include ...

  9. supervisor安装配置与使用

    supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控.管理进程.常用于管理与某个用户或项目相关的进程. 组成部分supervisord:服务守护进程supervisorctl ...

  10. C# 代码示例_结构/数组/枚举...

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...