经过n多天的tomcat   ssl研究,终于找到一些能用的方法,但是我这个不是openssl做的,直接用jdk的keytools就行了;目的是实现tomcat的双向加密,不导入证书无法访问,给一些小规模客户端于服务器之间建立了可靠的通信方式。--丁宁整理总结;

windows和linux下配置方法类似,只是路径的差别! 附本人txt配置两篇;


 

服务器证书

keytool -genkeypair -v -alias tomcat -keyalg RSA -keystore ca/tomcat.keystore -dname "C=CN,OU=IT,O=YIXIUWANG,ST=BEIJING,C=CN,L=HD,CN=192.168.1.123,emailAddress=test@test.com" -storepass as.1234 -keypass as.1234

客户端证书

keytool -genkeypair -v -alias client -keyalg RSA -storetype PKCS12 -keystore ca/client.p12 -dname "CN=client,OU=IT,O=YIXIUWANG,L=ANY,ST=bj-yxw,C=CN" -storepass as.1234 -keypass as.1234

让服务器信任客户端证书

keytool -exportcert -alias client -keystore ca/client.p12 -storetype PKCS12 -storepass as.1234 -rfc -file ca/cacert.cer

将该文件导入服务器的证书库,添加为一个信任证书

keytool -importcert -v -file ca/cacert.cer -keystore ca/tomcat.keystore -storepass as.1234

查看服务器证书库,看到服务器证书和

keytool -list -v -keystore  ca/tomcat.keystore -storepass as.1234

将ca/tomcat.keystore拷贝到Tomcat6.0


server.xml  定义8443端口   AJP什么的那句话的上边添加:

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

               maxThreads="150" scheme="https" secure="true"  

               clientAuth="true" sslProtocol="TLS" 

               keystoreFile="tomcat.keystore" keystorePass="as.1234"

               truststoreFile="tomcat.keystore" truststorePass="as.1234"/>