HTTPS安全协议的原理及配置使用

HTTPS原理

  1. 客户端向服务器发送请求
  2. 服务器向客户端发送自己的证书
  3. 客户端验证证书的有效性(是否是可信用机构CA颁发的证书,如果不是则提出警告)并对比里面信息是否正确,不通过则立刻断开连接
  4. 向服务器端发送自己的证书及支持的加密算法列表
  5. 服务器端验证客户证书的有效性,并选择加密程度最高的加密算法,用客户的公钥加密后发给客户端
  6. 客户端用自己的私钥解密得到要使用的加密算法,然后随机产生主密码key在用服务器端的公钥对其加密并发送
  7. 服务器用自己的私钥解密获取主密码
  8. 以后发送的信息都通过对称加密进行加密通信

Https有单向和双向验证,它们的区别
单向认证只要求站点部署了ssl证书就行,任何用户都可以去访问(IP被限制除外等),只是服务端提供了身份认证。而双向认证则是需要是服务端需要客户端提供身份认证,只能是服务端允许的客户能去访问,安全性相对于要高一些
双向认证SSL 协议的具体通讯过程,这种情况要求服务器和客户端双方都有证书。 单向认证SSL 协议不需要客户端拥有CA证书,以及在协商对称密码方案,对称通话密钥时,服务器发送给客户端的是没有加过密的(这并不影响SSL过程的安全性)密码方案。这样,双方具体的通讯内容,就是加密过的数据。如果有第三方攻击,获得的只是加密的数据,第三方要获得有用的信息,就需要对加密的数据进行解密,这时候的安全就依赖于密码方案的安全。而幸运的是,目前所用的密码方案,只要通讯密钥长度足够的长,就足够的安全。这也是我们强调要求使用128位加密通讯的原因。
一般Web应用都是采用单向认证的,原因很简单,用户数目广泛,且无需做在通讯层做用户身份验证,一般都在应用逻辑层来保证用户的合法登入。但如果是企业应用对接,情况就不一样,可能会要求对客户端(相对而言)做身份验证。这时就需要做双向认证。

Tomcat配置单向Https

1.使用jdk中的keytool工具产生证书库文件,并复制到tomcat的conf目录下

keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:/SSL/server/tomcat.keystore -dname "CN=localhost,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN" -validity 3650 -storepass 123456 -keypass 123456

2.修改tomcat的server.xml文件(keystoreFile可以通过相对路径指定)

<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="conf/tomcat.keystore" 
    keystorePass="123456" />

3.配置需要强制使用https协议的url

    <!-- 强制SSL配置,即普通的请求也会重定向为SSL请求 --> 
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>SSL</web-resource-name>
            <url-pattern>/service/*</url-pattern><!-- 全站使用SSL <url-pattern>/*</url-pattern>-->
        </web-resource-collection>
        <user-data-constraint>
            <description>SSL required</description>
            <!-- CONFIDENTIAL: 要保证服务器和客户端之间传输的数据不能够被修改,且不能被第三方查看到 -->
            <!-- INTEGRAL: 要保证服务器和client之间传输的数据不能够被修改 -->
            <!-- NONE: 指示容器必须能够在任一的连接上提供数据。(即用HTTP或HTTPS,由客户端来决定)-->
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值