tomcat安全加固指南--SSL通信原理及Tomcat SSL双向验证配置
改证书文件存在于java.home\lib\security目录下,是Java系统的CA证书仓库
第一步:为服务器生成证书
keytool -genkey -v -alias tomcat -keyalg RSA -keystore server -keysize 2048 -dname "CN=127.0.0.1,OU=puerysoft,O=puerysoft,L=wuhan,ST=wuhan,C=CN" -validity 3650 -storepass boco -keypass boco
第二步:为客户端生成证书
keytool -genkey -v -alias client -keyalg RSA -storetype PKCS12 -keystore client.p12 -keysize 2048 -dname "CN=127.0.0.1,OU=puerysoft,O=puerysoft,L=wuhan,ST=wuhan,C=CN" -validity 3650 -storepass boco -keypass boco
把客户端证书导出为一个单独的CER文件
keytool -export -alias client -keystore client.p12 -storetype PKCS12 -storepass boco -rfc -file client.cer
将该文件导入到服务器的证书库,添加为一个信任证书:
keytool -import -alias client -v -file client.cer -keystore server -storepass boco
第四步:配置Tomcat 服务器
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" scheme="https"
secure="true" clientAuth="true" sslProtocol="TLS"
keystoreFile="conf/keystore/server" keystorePass="boco"
truststoreFile="conf/keystore/server" truststorePass="boco"/>
第五步:导入客户端证书
如果设置了clientAuth="true",则需要强制验证客户端证书。双击client.p12即可将证书导入至IE:导入证书后,即可启动Tomcat,用IE进行访问
第六步: 导出服务器证书给客户端
方法1:
导出服务器证书给客户端用
keytool -export -alias tomcat -keystore server -file server.cer -storepass boco
方法2:
直接访问资源url,然后从浏览器中,下载证书.这样就脱离了服务器端的.也就是说不依赖服务段的密匙库.
将从浏览器中下载的证书命名为:server.cer
第七步:将导入server.cer,为客户端 创建定制密钥库
方法1:
server.cer来自于keystore导出.
keytool -import -noprompt -trustcacerts -alias clientInvokeServer -file server_web.cer -keystore client -storepass boco
方法2:
server.cer来自于浏览器导出.
keytool -import -noprompt -trustcacerts -alias clientInvokeServer -file server.cer -keystore D:/SSL/keystore/browserserver.keystore -storepass boco
第八步:测试
https://127.0.0.1:8443/