Tomcat6配置HTTPS

我使用的JDK版本为JDK6,使用的的Tomcat版本为6;配置Tomcat下的HTTPS其实很简单,只需要完成两步工作就可以 了;SSL认证分双向认证和单向认证,如果为又向认证则客户端也需要安装已生成好的文件。

一、生成“服务器证书文件”

我把生成的“服务器证书文件”取名为server.jks。简单起见,我把server.jks放在D盘根目录下面,配置环境为windows.
首先使用JDK自带的工具keytool生成一个“服务器证书”,取名为server.jks。

tomcat6配置双向认证

1、生成服务器端证书

Java 代码
  1. keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn"
    -alias server -keypass password -keystore d:/server.jks -storepass password -validity 3650
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、生成客户端证书

Java 代码
  1. keytool -genkey -keyalg RSA -dname "cn=sango,ou=sango,o=none,l=china,st=beijing,c=cn"
    -alias custom -storetype PKCS12 -keypass password -keystore d:/custom.p12
    -storepass password -validity 3650  
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文件:

Java 代码
  1. keytool -export -alias custom -file d:/custom.cer -keystore  d:/custom.p12
    -storepass password -storetype PKCS12 -rfc  
keytool -export -alias custom -file custom.cer -keystore  custom.p12 -storepass password -storetype PKCS12 -rfc


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

Java 代码
  1. keytool -import -v -alias custom -file d:/custom.cer -keystore  d:/server.jks -storepass password  
keytool -import -v -alias custom -file custom.cer -keystore  server.jks -storepass password


4、查看证书内容

Java 代码
  1. keytool -list -v -keystore d:/server.jks -storepass password  
keytool -list -v -keystore server.jks -storepass password


5、配置tomcat service.xml文件

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"  />  
<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

tomcat6配置单向认证

1、生成服务器端证书

Java 代码
  1. keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn"
    -alias server -keypass password -keystore d:/server.jks -storepass password -validity 3650  
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、由于是单向认证,没有必要生成客户端的证书,直接进入配置tomcat service.xml文件,Xml代码

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

clientAuth="false"表示单向认证,同时去掉truststoreFile="D:/server.jks" truststorePass="password"这2个属性 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值