在Tomcat6中兑现https单向安全验证
https单向认证的目的:
1.保证服务端是可信的
2.保证服务端和客户端之间的所有通讯都是加密的,具体如下
i. 客户端产生一个对称的密钥,通过server 的证书来交换密钥. 一般意义上的握手过程.
ii. 接下来所有的信息往来就都是加密的. 第三方即使截获,也没有任何意义.因为他没有密钥. 当然篡改也就没有什么意义
实现步骤如下
1.生成密钥
C:\deploy\tomcat6.0\bin>keytool -genkey -alias tomcat -keyalg RSA -keypass passw
ord -storepass password -keystore server.keystore -validity 3600
2.导出证书
C:\deploy\tomcat6.0\bin> keytool -export -trustcacerts -alias tomcat -file serve
r.cer -keystore server.keystore -storepass password
3.将证书拷贝到D:\Program Files\jdk1.6\jre\lib\security目录下,并使用以下命令将证书导入到证书信任库
D:\Program Files\jdk1.6\jre\lib\security> keytool -import -trustcacerts -alias t
omcat -file server.cer -keystore cacerts -storepass changeit
4.修改server.xml文件,加入
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8888" minSpareThreads="5" maxSpareThreads="75" enableLookups="true" disableUploadTimeout="true" acceptCount="100" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" clientAuth="false" sslProtocol="TLS" keystoreFile="C:\deploy\tomcat6.0\bin\server.keystore" keystorePass="password"/>
5.通过链接https://localhost:8888/访问应用