zoukankan      html  css  js  c++  java
  • HTTPS_SSL apache认证、配置的、步骤以及原理说明

    一 、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再导入

  • 相关阅读:
    Redis开发与运维:SDS
    Redis开发与运维:数据迁移
    我的2019上半年
    C# 并发编程
    经典排序算法 — C# 版(上)
    图解 -- 树的汇总
    图解--队列、并发队列
    栈到CLR
    我们的数组
    算法复杂度
  • 原文地址:https://www.cnblogs.com/xiaoyu1994/p/8186259.html
Copyright © 2011-2022 走看看