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

 

posted @ 2018-01-03 22:50  步步丶惊云  阅读(1194)  评论(0编辑  收藏  举报