ssl单向证书

本机电脑完全按照以下步骤生成,证实可用.

先进入本地jdk的bin目录:

使用keytool命令生成证书:

keytool 

-genkey 

-alias tomcat(别名

-keypass 123456(别名密码

-keyalg RSA(算法

-keysize 1024(密钥长度

-validity 365(有效期,天单位

-keystore D:/keys/tomcat.keystore(指定生成证书的位置和证书名称

-storepass 123456(获取keystore信息的密码)

快捷版keytool -genkey -alias boke -keypass 123456 -keyalg RSA -keysize 1024 -validity 3650 -keystore E:/Akeys/boketomcat.keystore -storepass 123456

 

控制台输出

E:\java\JDK7\bin>keytool -genkey -alias boke -keypass 123456 -keyalg RSA -keysize 1024 -validity 3650 -keystore E:/Akeys/boketomcat.keystore -storepass 123456

您的名字与姓氏是什么?

  [Unknown]:  127.0.0.1

您的组织单位名称是什么?

  [Unknown]:  127.0.0.1

您的组织名称是什么?

  [Unknown]:  boke

您所在的城市或区域名称是什么?

  [Unknown]:  上海

您所在的省/市/自治区名称是什么?

  [Unknown]:  上海

该单位的双字母国家/地区代码是什么?

  [Unknown]:  ZH

CN=127.0.0.1, OU=127.0.0.1, O=boke, L=上海, ST=上海, C=ZH是否正确?

  [否]:  y

 

 

服务器证书生成成功,接下来为客户端生成证书:

keytool -genkey -alias bokeclient -keypass 123456 -keyalg RSA -keysize 1024 -validity 3650 -storetype PKCS12 -keystore E:/Akeys/boke.p12 -storepass 123456
控制台

E:\java\JDK7\bin>keytool -genkey -alias bokeclient -keypass 123456 -keyalg RSA -keysize 1024 -validity 3650 -storetype PKCS12 -keystore E:/Akeys/boke.p12 -storepass 123456

您的名字与姓氏是什么?

  [Unknown]:  127.0.0.1

您的组织单位名称是什么?

  [Unknown]:  127.0.0.1

您的组织名称是什么?

  [Unknown]:  boke

您所在的城市或区域名称是什么?

  [Unknown]:  上海

您所在的省//自治区名称是什么?

  [Unknown]:  上海

该单位的双字母国家/地区代码是什么?

  [Unknown]:  ZH

CN=127.0.0.1, OU=127.0.0.1, O=boke, L=上海, ST=上海, C=ZH是否正确?

  []:  y

 

 

然后再让服务器信任客户端证书

 

 

因为不能直接将PKCS12格式的证书库导入

必须先把客户端证书导出为一个单独的CER文件,使用如下命令:

keytool -export -alias msszj -keystore E:/Akeys/boke.p12 -storetype PKCS12 -keypass 123456 -file E:/Akeys/msszj.cer

 

这个地方输出的别名必须是上面客户端生成证书的别名,是要处理的别名

 

将该文件导入到服务器的证书库,添加为一个信任证书:

keytool -import -v -file E:/Akeys/msszj.cer -keystore D:/keys/boketomcat.keystore -storepass 123456

 

 

keytool -list -v -keystore E:/Akeys/boketomcat.keystore

 

 

然后把对面的证书导入到证书库里面,证书这块算是完成了

 

 

最后配置tomcat服务器

<Connector  port="8443"

protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"

maxThreads="150"

scheme="https"

secure="true"

clientAuth="true"

sslProtocol="TLS"

keystoreFile="D:/keys/tomcat.keystore"

keystorePass="123456"

truststoreFile="D:/keys/tomcat.keystore"

truststorePass="123456" />

 

 

属性说明:

clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证

keystoreFile:服务器证书文件路径

keystorePass:服务器证书密码

truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书

truststorePass:根证书密码

 

 

注意:

  •  设置clientAuth属性为True时,需要手动导入客户端证书才能访问。

 要访问https请求 需要访问8443端口,上面配置的port,访问http请求则访问Tomcat默认端口原来最开始的端口

博主遇到个很坑的问题就是从webservice 里面用证书时,wsdl文件有问题,导致对面访问不了https,但是从页面上访问https wsdl服务是没有问题的,这个时候需要检查你自己的wsdl是不是有问题,一般建议直接重写,不要接别人写好,或写一半的,因为你永远不知道被人给你挖多少坑

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值