让Tomcat插上SSL的翅膀

   TOMCAT提供的HTTP页面和服务,由于是基于HTTP,都是明文传输,在网络上传输的内容很容易被截获,安全性无法得到保障。让Tomcat这个小老虎插上SSL的翅膀,使汤姆猫提供的是加密的服务,个人感觉非常有意思,特别是为手机APP应用提供服务的情况下。今天尝试了一下,发现其实非常简单,特此日志记录下。

   前置条件:

   1.安装了JDK,本人使用的是jdk1.6.0_20,并将JAVA安装路径放在系统环境变量path下:

  2.jdk1.6.0_20\jre\lib\ext目录下有bcprov-jdk15-135.jar和sunjce_provider.jar这两个文件(主要是生成可信赖的客户端证书),在执行JAVA命令时,JVM会自动装载jdk1.6.0_20\jre\lib\ext下的所有JAR,bcprov-jdk15-135.jar一般没有,CSDN提供下载

   3.修改JAVA security provider,在jdk1.6.0_22\j\jre\lib\security\java.security文件中找到security.provider.9=并在下面添加一行 security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider

   完成如上的修改,就可以生成公钥私钥了

   1.生成服务器端RSA密钥

     进入CMD控制台,进入某个目录后,输入如下命令:

   keytool -genkey -alias tomcat -keyalg RSA -keystore myserver.keystore -validity 36000

   tomcat是别名,可随意指定,执行后系统要求输入秘钥的密码,如567890

      特别注意“您的名字与姓氏是什么?”,请输入服务的IP地址或域名,这个比较重要,否则客户端证书将无法验证通过,其它的可随意指定。

      完成后,可以在此目录下看到myserver.keystore这个文件

   2.生成客户端证书

     进入CMD控制台,进入刚才的目录,输入如下命令:

     keytool -export -alias tomcat -file myserver.cer -keystore myserver.keystore -storepass 123456

     完成后,可以在此目录下看到myserver.cer这个文件

   3.生成可信赖密钥

     进入CMD控制台,进入刚才的目录,输入如下命令:

     keytool -import -alias tomcat -file myserver.cer -keystore my_server_trust.keystore -storepass 123456-storetype BKS -providername "BC"

   完成后,可以在此目录看到my_server_trust.keystore文件,这是BouncyCastle生成的可信赖的密钥

  4. 配置tomcat

     conf/server.xml修改或添加如下配置:

<Connector SSLEnabled="true" acceptCount="100" clientAuth="false" disableUploadTimeout="true"
	enableLookups="true" keystoreFile="E:/keyStore/myserver.keystore" keystorePass="123456" 
	maxSpareThreads="75" maxThreads="200" minSpareThreads="5" port="8443"
	protocol="org.apache.coyote.http11.Http11NioProtocol"
	scheme="https" secure="true" sslProtocol="TLS"/>
这样tomcat提供的是8443端口的HTTPS服务了。

启动TOMCAT,你可以通过IE访问,IE提示你访问不安全站点,提示是否继续

   5.安装客户端证书

双击刚才生成的myserver.cer,把它导入“受信任的根证书颁发机构”,再次用IE打开,你会发现,访问这个HTTPS服务不再受限了

6.测试

使用fiddler工具拦截刚才的请求,你会发现,看不到请求的参数信息和响应信息,说明,tomcat插上ssl的翅膀了

   

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值