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://www.cnblogs.com/zhuawang/p/5130394.html

HTTPS_SSL配置的步骤以及原理说明相关推荐

  1. MySQL主从复制原理、半同步操作步骤及原理

    MySQL主从复制原理.半同步操作步骤及原理 1.1 企业Linux运维场景数据同步方案 1.1.1 文件级别的异机同步方案 1.scp/sftp/nc 命令可以实现远程数据同步. 2.搭建ftp/h ...

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

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

  3. OPGL+VS2017+GLFW+GLEW配置详细步骤

    OPGL+VS2017+GLFW+GLEW配置详细步骤 首先呢?不可否认我在CSDN这个平台上学到了很多有用的知识,可能是感染到我吧,第一次有想法自己发博文,不足之处,请多多指教. 入门学习OPGL, ...

  4. mysql主从复制安装部署配置操作步骤及主从库宕机处理办法

    mysql主从复制安装部署配置操作步骤及主从库宕机处理办法 大家好,我是酷酷的韩~ 1.前期准备 (1)首先需要准备至少两台mysql 这里方便演示,用了两台虚拟机 环境是centos7 主: 172 ...

  5. springboot集成swagger2多模块中文配置详细步骤,解决集成mybatis或mybatis-plus无法正常使用问题

    springboot集成swagger2多模块中文配置详细步骤,解决集成mybatis或mybatis-plus无法正常使用问题 参考文章: (1)springboot集成swagger2多模块中文配 ...

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

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

  7. Mac系统安装和配置tomcat步骤详解

    1 1 1 1 1 1 1 2 3 1 2 3 查看 6 条热评 huyisu 2014年08月04日 17:47 160237 转自:http://www.himigame.com/java-ser ...

  8. php5中Xdebug配置安装步骤介绍

    摘要: 本文讲的是php5中Xdebug配置安装步骤介绍, Xdebug版本下载 http://www.xdebug.com/download.php 注意在下载Xdebug时我们必须查看自己php版 ...

  9. mysql主从修改系统参数步骤_mysql主从配置的参数配置与步骤_MySQL

    mysql主从配置的参数配置与步骤_MySQL 主从配置的步骤: 在主库建立要同步的数据库,建立主库的帐号和修改主备库配置 create database web default character ...

最新文章

  1. 又有六所大学考研预调剂系统已开放!
  2. python报错UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe8 in position 0 解决方案
  3. 得到 ip/掩码 的起始结束地址
  4. 关于c中的inline
  5. 【转载】深度学习数学基础(二)~随机梯度下降(Stochastic Gradient Descent, SGD)
  6. html 动态调用php文件,html静态页面调用php文件的方法
  7. GitHub轻松阅读微服务实战项目流程详解【第四天:账户服务的设计与实现】
  8. 结巴分词优点_中文分词概述及结巴分词原理
  9. 自从装了windows神器,再也不用羡慕mac了
  10. mingw + msys 上编译 ffmpeg
  11. 如何使用Linux重置Windows密码
  12. WPF Page close
  13. mysql maria引擎_MySQL/mariadb知识点——存储过程及存储引擎
  14. Linux下的C程序如何调用系统命令,并获取系统的输出信息到C程序中
  15. SLAM--intel realsense2在ORB SLAM2 和 ORB SLAM3下建图和重定位(ubuntu 20.04, opencv 4.2.0 以上)
  16. web性能优化的一些方法
  17. android跳转界面的方法有多少,Android跳转WIFI界面的四种方式
  18. 保存Simulink仿真模型为图片或者PDF的方法
  19. 安卓初学者笔记(四):用白话讲明白Activity是什么
  20. 安装liunx出现Entering emergency mode

热门文章

  1. 关于a标签的 href 与 onlick
  2. assign,copy,strong,weak,nonatomic的具体理解
  3. 编写和布置一个List Event Receivers(下)
  4. SQL Azure(十) SQL Azure Data Sync数据同步功能(上)
  5. 基础补充:使用xlrd模块读取excel文件
  6. shell-sed命令详解(转)
  7. 读《大型网站技术架构:核心原理与案例分析》第一章:大型网站架构演化
  8. 《java入门第一季》之面向对象面试题(继承中构造方法的关系)
  9. Apple-Watch开发2 APPIcon设置
  10. C#中结构数据类型的使用