Java Web 数据安全-面向Tomcat Server的HTTPS安全套接层配置

来源:互联网 发布:cs1.6 优化参数 编辑:程序博客网 时间:2024/06/06 08:41

面向Tomcat Server的HTTPS安全套接层配置

序言

 大数据和云计算时代,数据安全变得愈发重要,数据失去了安全性将会变得一文不值。
HTTPS是新型的超文本传输协议,属于传统HTTP的加强版,主要在其中嵌套了SSL层,使用多种加密技术使得客户端和服务器间的访问是加密的,可以避免恶意请求的劫持,多用于交易支付等重要的Web场合中。
由于SSL是双向的,所以需要客户端和服务器共同验证,共同验证通过后才可以正常访问。

下面是配置的步骤。

为服务器生成一个合法的证书

使用keytool为Tomcat生成证书。

使用命令:

 

keytool-genkey -v -alias tomcat -keyalg RSA -keystoreG:\学习资料\TomcatSecurityCertificate\ServerSecurity.keystore-validity 36500

 

证书的保存路径,其中,证书的文件名称为ServerSecurity.keystore


证书的有效期,36500表示证书的有效期时长为100年。默认为9天




要注意:

在填写“您的名字与姓氏是什么”的时候,如果是将此电脑做为本地服务器测试,则要填写IP地址或者本机(localhost)




此时会在刚才指定的路径下生成一个后缀名为keystore格式的证书文件。

 

 

为客户端生成一个合法的证书

使用keytool为Tomcat生成证书。

使用命令:

 

 


客户端证书的存放路径,其中文件名为ClientSecurity.p12




注意:

生成客户端证书后,双击安装后方可生效。




此时会在刚才指定的路径下生成一个后缀名为p12格式的证书文件。

 

使服务器信任客户端证书

由于此技术基于双向验证,所以要让服务器信任客户端证书,也需要让客户端信任服务器证书。满足这两个条件即可建立安全套接字层,使用多种加密技术保证在双方交互时的安全性。

 

使用命令:

 

keytool -export -alias mykey -keystore G:\学习资料\TomcatSecurityCertificate\ClientSecurity.p12-storetype PKCS12 -storepass123456 -rfc -fileG:\学习资料\TomcatSecurityCertificate\ClientSecurity.cer

 

p12格式的客户端证书文件路径,因为这种格式的证书不能直接导入,所以需要使用keytool将其转换为cer证书文件才可以直接双击导入到证书库中

 

原证书中设置的密码

 

生成cer新证书的输出路径






此时会在刚才指定的路径下生成一个转换后的以cer为后缀名的证书文件。

 

之后,需要将此证书导入到服务器的证书库

 

使用命令:

 

keytool -import -v -file G:\学习资料\TomcatSecurityCertificate\ClientSecurity.cer -keystoreG:\学习资料\TomcatSecurityCertificate\ServerSecurity.keystore

 

服务端cer格式的证书路径,添加到服务器证书库的源证书

 

服务器证书文件



 

此时已显示将此客户端证书添加到密钥库中。

 

 

使客户端信任服务器证书

此时需要把服务器证书添加到浏览的“受信任的根证书颁发机构”。但keystore格式的证书无法直接导入,则需要转换为cer文件。

 

使用命令:

 

keytool-keystore G:\学习资料\TomcatSecurityCertificate\ServerSecurity.keystore -export -alias tomcat -file G:\学习资料\TomcatSecurityCertificate\ServerSecurity.cer

 

格式为keystore的服务器证书文件

 

将keystore格式的服务器端证书文件转换的输出路径






此时会在刚才定义的输出路径下创建一个服务器端的cer格式的证书。



此时,双击此文件,安装到系统的“受信任的根证书颁发机构”中即可。

 

 

 


配置Tomcat Server服务器的HTTPS安全链接支持

在Tomcat根目录下的conf文件夹中,以文本方式编辑,在要访问的端口后根据以下代码进行属性的修改:

 

<Connectorprotocol="org.apache.coyote.http11.Http11NioProtocol" 

           port="8080"minSpareThreads="5" maxSpareThreads="75" 

           enableLookups="true"disableUploadTimeout="true"   

           acceptCount="100"  maxThreads="200" 

           scheme="https"secure="true" SSLEnabled="true" 

           clientAuth="false"sslProtocol="TLS" 

           keystoreFile="G:\学习资料\TomcatSecurityCertificate\ServerSecurity.keystore"   

           keystorePass="123456"/>

 

服务器证书的绝对路径

 

服务器证书设置的密码

 

至此,全部配置步骤已经完成。

 



效果演示


在IE浏览器中输入https://localhost:8080/,显示效果如下:

 



看到地址栏右侧有一个小锁图标,表明此次连接与服务器是加密的。

 

为了更明显的看出效果,使用Chrome访问刚才的地址,效果如下:



 

Chrome内核的浏览器对此提示更全面。

2 0
原创粉丝点击