DistChen

Tomcat HTTPS 单向认证

什么是HTTPS?在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。SSL目前的版本是3.0,被IETF(Internet Engineering Task Force)定义在RFC 6101中,之后IETF对SSL 3.0进行了升级,于是出现了TLS(Transport Layer Security) 1.0,定义在RFC 2246。实际上我们现在的HTTPS都是用的TLS协议,但是由于SSL出现的时间比较早,并且依旧被现在浏览器所支持,因此SSL依然是HTTPS的代名词,但无论是TLS还是SSL都是上个世纪的事情,SSL最后一个版本是3.0,今后TLS将会继承SSL优良血统继续为我们进行加密服务。目前TLS的版本是1.2,定义在RFC 5246中,暂时还没有被广泛的使用。

让tomcat 启用单向认证

创建一个 keystore文件

1
keytool-genkey -v -alias dist -keyalg RSA -validity 3650 -keystoree:\dist.keystore

注意,输入名字与姓氏的时候一定要设置系统所在服务器的主机名或IP地址。

这里写图片描述

导出证书

1
keytool-export -alias dist -keystore e:\dist.keystore -file e:\dist.cer -storepass123456

这里写图片描述

导入证书到jre中

1
2
cd C:\ProgramFiles\Java\jre7\lib\security
keytool-import -alias dist -keystore cacerts -file e:\dist.cer -trustcacerts

这里写图片描述

tomcat启用 https

1
2
3
4
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="C:/install/tomcat/tomcat_noinstall/CAS/kestore/chenyp.keystore" keystorePass="123456" />

删除某个证书

1
2
3
cd C:\Program Files\Java\jre7\lib\security
keytool -delete-alias dist -keystore cacerts
坚持原创技术分享,您的支持将鼓励我继续创作!