SSL通道配置以及用keytool生成证书详解

SSL通道搭建步骤如下:

首先生成证书:

SSL通信中证书配置:

工具keytool

服务器端:

服务端我们采用java默认的密钥库JKS类型,首先我们利用keytool工具创建一个密钥对,语句如下:

 

keytool -genkey -alias serverkey -keypass serverpass -keystore e:\serverkeystore\serverkey.jks -storepass serverpass -validity365 -keyalg RSA -keysize 1024 

 

 

这个语句创建了一个密钥库serverkey.jks

创建好密钥对之后我们将用这个密钥对产生的证书导出:

 

keytool exportcert alias serverkey –keytore e:\serverkeystore\serverkey.jks –file e:\serverkeystore\server.crt –storepass serverpass

 

 

这个语句从serverkey.jks中导出了一个名为serverkey.crt的证书。

 

这个证书我们将导入到客户端的受信任证书密钥库中去,同样的服务器端也需要一个受信任证书密钥库:

 

keytool importcert alias serverkey –keystore e:\clientkeystore\clientkey.bks –file e:\serverkeystore\server.crt –storepass clientpass –v -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

 

查看clientkey.bks

 

 

 

这个语句是将客户端导出来的证书server.crt导入到clientkey.bks中去。

 

 

客户端:

客户端也类似,不过由于客户端是android只支持BKS类型的密钥库,而java本身不支持BKS类型密钥库,所以我们需要手动的加上这个库,使javakeytool能够使用BKS

 

将这个bcprov-jdk16-145.jar包放在%JAVA_HOME%jre/lib/etx文件夹下,然后在%JAVA_HOME%jre/lib/security/java.security  文件中的列表中添加一条

 

security.provider.??=org.bouncycastle.jce.provider.BouncyCastleProvider

 

??表示序号,就跟在原列表的后面就行。配置好以后,就可以使用keytool来生成BKS类型的密钥库了

 

    开始写客户端:类似的我们先创建一个密钥对

 

keytool -genkey -alias clientkey -keypass clientpass -keyalg RSA -keysize 1024 -validity 365 -keystore e:\clientkeystore\clientkey.bks -storepass clientpass -dname "cn=client, ou=whu, o=whu, c=CN, l=wuhan" -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

 

这里注意需要加上storetypeprovider类型,provider就是上面配置时添加的内容。

 

这个语句创建了一个名为clientkey.bks 里面包含了一个的密钥对,接下来导出这个密钥对生成的证书:

 

keytool exportcert alias clientkey –keytore e:\clientkeystore\clientkey.bks –file e:\clientkeystore\clent.crt -storepass clientpass -v -storetype BKS -providerorg.bouncycastle.jce.provider.BouncyCastleProvider

 

 

这个clentcrt的证书就是上面服务器中需要用到的证书。接着把clent.crt导入到信任密钥库中去:

 

keytool importcert alias clientkey –keystore e:\sercerkeystore\serverkey.jks –file e:\clientkeystore\clent.crt -storepass serverpass -v 


查看serverkey.jks 

 

 

 

 

 

 

 

 

 

 

Keytool -list -v -keystore e:\serverkeystore\serverkey.jks -storepass serverpass

 

 

 

 

 

(2)最后一步就是配置Tomcat。修改tomcat server.xml 文件的配置如下:

<Connector

protocol="org.apache.coyote.http11.Http11Protocol" port="8443"       maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="E:\serverkey.jks" keystorePass="serverpass"

clientAuth="false" sslprotocol="TLS"

/>

在浏览器中输入https://localhost:8443成功页面如图4-9:

 

                           图4-9 SSL配置成功

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值