HTTPS协议小记

在SAAS这个行业,安全性问题大概是业界讨论并关注最多的问题,客户的数据是绝对不能向外泄露的,可能有些人能够通过一些非法的途径获得这些数据,那我们所考虑的一是改进原有系统的功能,屏蔽非法访问,二是对数据进行加密。
HTTP协议的加密只是所有这些处理的一个功能,这就要用到HTTPS协议了。HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道, HTTPS传输的是密文、端口443,HTTPS是 HTTP下加入SSL层,HTTPS的安全基础是SSL。下面详细介绍下SSL。
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
  SSL协议提供的服务主要有:
  1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
  2)加密数据以防止数据中途被窃取;
  3)维护数据的完整性,确保数据在传输过程中不被改变。
  SSL协议的工作流程:
服务器认证阶段:
1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;
2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;
3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;
4)服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
用户认证阶段:在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。

HTTPS应用:
keytool生产非签发证书
keytool -genkey -alias tomcat -keystore Alisoft.Boss
在此命令中,keytool是JDK自带的产生证书的工具。把RSA运算法则作为主要安全运算法则,这保证了与其它服务器和组件的兼容性。
这个命令会在用户的C:\Documents and Settings\mill.zengb产生一个叫做" Alisoft.Boss " 的新文件。你会被要求出示关于这个认证书的一般性信息,如公司,联系人名称,等等。这些信息会显示给那些试图访问你程序里安全网页的用户,以确保这里提供的信息与他们期望的相对应。你会被要求出示密钥(key)密码,也就是这个认证书所特有的密码(与其它的储存在同一个keystore文件里的认证书不同)。你必须在这里使用与keystore密码相同的密码。(目前,keytool会提示你按ENTER键会自动帮你做这些)。
TOMCAT应用配置
将Alisoft.Boss放置在TOMCAT安装目录下面
<Connector port="8443" protocol="HTTP/1.1" minSpareThreads="5" maxSpareThreads="75"
           enableLookups="true" disableUploadTimeout="true"
           acceptCount="100"  maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="Alisoft.Boss" keystorePass="123456"
           clientAuth="false" sslProtocol="TLS"/>       

通过https://localhost:8443访问TOMCAT的首页就会跳出

你可能感兴趣的:(tomcat,应用服务器,算法,socket,saas)