Tomcat SSL 的搭建

SSL 通道的搭建

度娘解释:

http://baike.baidu.com/view/16147.htm

运行机制的理解:客户端发起链接请求,应用服务器读取配置的服务器证书,验证客户端提交的证书信息,这里可以clientAuth 属性配置搭建双向SSL或者单向SSL,中间的区别就在于客户端是否有自己的证书,如果没有,那么WebServer只需验证客户端配置根证即可;

搭建了SSL通道,WebApp并没有什么直观的表现,想了解她的变化啊,可以,自己抓包去吧。

不过,WebServer是对明文加密处理后以原传输协议来传输信息,还是仅仅更换了传输协议,从而使得原有的抓包方式获取到的只是乱码,现在还真不清楚。

WebServer 是现成的,那么我们能做的就是配置服务器证书,那就涉及到申请、颁发和部署应用的步骤,哈哈,接下来我要写的内容有点坑爹,甚至颠覆了我原有的理解&(申请,谁发出的?;颁发,那么随意吗?部署,有n种可能,自己慢慢试吧,直到你崩溃)

申请:Keytool 命令,这是jdk中的命令,注意啊,这可是一个exe程序,而非jar文件,更不会是java中的security包里的东西了,这是第一个坑,不禁让人怀疑这个密钥对是Java产生滴聂,还是微软产生的啊,换了xUnix 又该如何……

好吧,不管,干活要紧,keytool 产生密钥对,发出证书请求,创建jks文件,第一阶段也就完成了;

紧跟步骤啊&

需要注意的是,不同版本的jdk中 keytool命令的参数是不同的,在使用时最好先 -help一下,我用的jdk 1.6 其命令为:

首先 获取密钥,建立jks密钥容器:
keytool -genkeypair -alias serverkey -keyalg "RSA" -keysize 1024 -keypass 111111 -dname "CN=localhost,OU=tomy,O=jszx,L=jinan,S=SD,C=CN" -keystore .\ca.jks -storepass 111111

其次,获得公钥请求文件

keytool -certreq -alias serverkey -keypass 111111 -sigalg "SHA1withRSA" -file .\cert.req -keystore .\ca.jks -storepass 111111

颁发,简单,三分钟搞定,呵呵,要不是CA机构,您就慢慢等喝,不急,这不是说咱效率,主要是正式证书的颁发流程较为繁琐而已,最终的技术实现呢,就是利用certreq.req文件签发证书,需要的注意的是这个公钥证书(概念一致,换了一个说法,暂且不表)的DN信息务必与keytool产生keypair时的dname一致(哪位兄台要不介意重新来过的话,可以随意啦)

颁发的证书,还不能直接交由服务器使用的,需要转下格式,变为二进制编码的der证书;

到了部署,导入服务器证书和根证

尤其注意:

根证的导入需要参数 -trustcacerts ;服务器证书的导入需要指定服务器证书的别名,如:例中的server

这里也是一个坑,如果不是根证千万不要用-trustcacerts 参数,否则,您就重来吧

list 之后,jks中就只有两张证书,而不是三张&

最后一步:tomcat server.xml 文件的配置

PS:如果是双向SSL 就需要将clientAuth 配置为true,另,clientAuth还有一个want项,表示单向或双向SSL通道根据情况建立。

成果:

 

附:web容器大都预留了对SSL支持的接口,所以只需要简单的配置就可以搭建这个环境,我这里倒是有jboss、weblogic的环境,但是现在工作不需要也就没在查看其中的差异,谁 要是有兴趣,可以动手试试。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值