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

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

二、1.单向认证,就是传输数据加密过,但是不会教研客户来源

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

    2.1https概念,是以安全为目标的http通道,就是安全版的http,就是http加入ssl安全认证,https的基础就是ssl所以加密详细内容就需要ssl

三、https和http的区别

  1.https协议需要到ca申请证书,一遍免费证书很少,需要缴费

  2.http时超文本协议,信息的传输通常都是明文,而https是经过ssl加密后再进行传输

  3.http和https使用的是完全不同的连接方式,用得默认端口都不一样,http默认端口:80,而https默认端口为432

  4.http的连接很简单,是无状态的,而https协议是由ssl+http协议构建的可进行加密、传输身份认证的网络协议,比http协议安全

四、https的作用

  1.主要作用分为俩种

    1.1建立信息安全通道,保证数据传输的安全

    1.2确认网站的安全性

  2.一般意义上的https就是服务有一个证书,主要目的是保证服务的器就是他声称的服务器,意思就是服务端和客户端通信都是ssl加密的。

  3.客户端证书其实就是通信时,不止验证你的用户名密码,还要验证你的ca证书

五、HTTPS_SSL配置的步骤:

  1. 验证是否已创建过同名的证书

    keytool -list -v -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit

   2.删除已创建的证书

    keytool -delete -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit

  3.创建证书

    3.1服务器中生成证书:

    (注:生成证书时,CN要和服务器的域名相同,如果在本地测试,则使用localhost)

    keytool -genkey -alias tomcat -keyalg RSA -keystore d:/mykeystore -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" -keypass changeit -storepass changeit

    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 密码设置

    3.2导出证书,由客户端安装:

    keytool -export -alias tomcat -keystore d:/mykeystore -file d:/mycerts.cer -storepass changeit

    3.3客户端配置:为客户端的JVM导入密钥(将服务器下发的证书导入到JVM中)

    keytool -import -trustcacerts -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -file d:/mycerts.cer -storepass changeit

  4.配置Tomcat SSL

    修改server.xml中的SSL服务

    <Connector port="8443" maxHttpHeaderSize="8192"
         maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
         enableLookups="false" disableUploadTimeout="true"
         acceptCount="100" scheme="https" secure="true"
         clientAuth="false" sslProtocol="TLS" keystoreFile="server.keystore" keystorePass="changeit"/>

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

  5.常见问题

  1. 未找到可信任的证书

    主要原因为在客户端未将服务器下发的证书导入到JVM中,可以用

    keytool -list -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit

    来查看证书是否真的导入到JVM中。

  1. keytool错误:java.io.IOException:keystore was tampered with,or password was incorrect

    原因是在你的home目录下是否还有.keystore存在。如果存在那么把他删除掉,后再执行

    或者删除"%JAVA_HOME%/jre/lib/security/cacerts 再执行

    建议直接删掉cacerts再导入

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

  1. HTTPS_SSL配置的步骤以及原理说明

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

  2. centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课

    centos    LAMP第二部分apache配置  下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转  配置apache的访问日志  配置静态文件缓存  配置防盗链 ...

  3. apache https配置步骤

    转自:http://www.cnblogs.com/best-jobs/p/3298258.html 1.  确认是否安装ssl模块 是否有mod_ssl.so文件 2.  生成证书和密钥 linux ...

  4. Apache安装配置步骤

    注释:这里以Linux 红帽商业版为例~~~~~~~纯手打啊 Apache安装配置步骤 准备:关闭其他虚拟设备 #/etc/init.d/libvirtd stop #/etc/init.d/xend ...

  5. 关于Apache的配置方法和步骤

    一.下载.安装和卸载 网址:https://httpd.apache.org/docs/current/platform/windows.html#down 点击ApacheHaus,在里面下载任何版 ...

  6. centos apache svn配置

    单独安装svn服务: 安装svn软件 yum install subversion 创建根目录 mkdir -p /var/www/svn 创建版本库repos svnadmin create /va ...

  7. 1.3.1 apache的配置(下)

    (1)httpd.conf的配置 使用文本编辑工具(推荐使用Editplus.UltraEdit等工具),打开httpd.conf. 其中,行首为#的部分为注释部分,不会被apache服务器程序进行读 ...

  8. apache https配置

    1.  确认是否安装ssl模块 是否有mod_ssl.so文件 2.  生成证书和密钥 linux下 步骤1:生成密钥 命令:openssl genrsa 1024 > server.key 说 ...

  9. nginx用户认证配置( Basic HTTP authentication)

    ngx_http_auth_basic_module模块实现让访问着,只有输入正确的用户密码才允许访问web内容.web上的一些内容不想被其他人知道,但是又想让部分人看到.nginx的http aut ...

随机推荐

  1. [日常] go语言圣经-声明,变量,赋值,类型,包和文件习题

    go语言圣经-声明1.四种类型的声明语句:var.const.type和func,分别对应变量.常量.类型和函数实体对象的声明2.包一级声明语句声明的名字可在整个包对应的每个源文件中访问,局部声明的名 ...

  2. 【CentOS】设置服务开机自动启动

    CentOS安装好apache.mysql等服务器程序后,并没有设置成开机自动启动的,为避免重启后还要手动开启web等服务器,还是做下设置好,其实设置很简单,用chkconfig命令就行了. 例如,要 ...

  3. Java - "JUC线程池" 架构

    Java多线程系列--“JUC线程池”01之 线程池架构 概要 前面分别介绍了"Java多线程基础"."JUC原子类"和"JUC锁".本章介 ...

  4. Android - AsyncTask你知道多少?

    http://www.cnblogs.com/qlky/p/5658070.html 为什么asyncTask最好在主线程初始化?在子线程怎么办? AsyncTask四个方法的执行顺序? mWorke ...

  5. K8s-Demo实现

     Kubernates的基础界面 常用的操作    将创建好的yaml文件通过Create按钮创建所需资源项目. Dashbord:   可以通过Dashbord查看集群详情:cpu.memory.f ...

  6. 第二十九天- socketserver模块 ftp上传

    1.socketserver模块: socketserver,它提供了服务器中心类,可简化网络服务器的开发,内部使用IO多路复用以及“多线程”和“多进程”,从而实现并发处理多个客户端请求的socket ...

  7. Webpack 常用命令总结以及常用打包压缩方法

    前言:Webpack是一款基于node的前端打包工具,它可以将很多静态文件打包起来,自动处理依赖关系后,生成一个.js文件,然后让html来引用,不仅可以做到按需加载,而且可以减少HTTP请求,节约带 ...

  8. js-ES6学习笔记-async函数(2)

    1.async函数返回一个 Promise 对象. async函数内部return语句返回的值,会成为then方法回调函数的参数. async function f() { return 'hello ...

  9. 【代码笔记】iOS-Transition动画

    一,工程图. 二,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIVi ...

  10. List常用几种方式

    第一种,匹配俩个集合中相同的值 , , , , , , }; , , , , , , , , }; var C= listA.Intersect(listB); foreach (var item i ...