tomcat6配置https

时间:2024-03-24 16:06:14

     公司的安全产品在做CCC认证,由于刚开始使用的是HTTP协议,在认证的时候他们说要使用加密的协议,所以需要配置SSL加密。

   关于tomcat6配置SSl,tomcat的文档本身是有带说明的。有兴趣的可以去看一下。htpp://localhost:8080/docs就是这个地址。

   这里描述一下配置的过程。

  1首先使用jdk的keytools.exe生成认证文件。进入java的安装目录下,执行如下命令

  tomcat6配置https

 


tomcat6配置https
 可以看到keytool的一些参数和帮助。

2生成服务端认证证书

tomcat6配置https

3查看证书


tomcat6配置https
 

4配置tomcat的server.xml文件

tomcat6配置https

 

5重启tomcat,访问https://localhost:8443


tomcat6配置https
 这里是tomcat6配置单项认证。还可以配置双向认证。

步骤如下

1、生成服务器端证书

keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn" -alias server -keypass password -keystore server.jks -storepass password -validity 3650


2
、生成客户端证书

keytool -genkey -keyalg RSA -dname "cn=sango,ou=sango,o=none,l=china,st=beijing,c=cn" -alias custom -storetype PKCS12 -keypass password -keystore custom.p12 -storepass password -validity 3650


客户端的CN可以是任意值。
3
、由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。由于不能直接将PKCS12格式的证书库导入,我们必须先把客户端证书导出为一个单独的CER文件,使用如下命令,先把客户端证书导出为一个单独的cer文件:

keytool -export -alias custom -file custom.cer -keystore custom.p12 -storepass password -storetype PKCS12 -rfc


然后,添加客户端证书到服务器中(将已签名数字证书导入**库)

keytool -import -v -alias custom -file custom.cer -keystore server.jks -storepass password


4
、查看证书内容

keytool -list -v -keystore server.jks -storepass password


5
、配置tomcat service.xml文件

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    clientAuth="true" sslProtocol="TLS"
    keystoreFile="D:/server.jks" keystorePass="password"
    truststoreFile="D:/server.jks" truststorePass="password"
/>


clientAuth="true"
表示双向认证
6
、导入客户端证书到浏览器
双向认证需要强制验证客户端证书。双击“custom.p12”即可将证书导入至IE