双向认可

生成服务端证书(必须在服务器上执行)

1> 进入命令行,如下:

htts.png


2> 进入jdk安装目录下的bin目录:

2.png

3> 用以下命令生成证书:

3.png

keytool -genkey -v -alias server214 -keyalg RSA -keystore D:\siit.keystore -validity 36500

备注:    D:\siit.keystore    为生成的证书保存的位置和文件名

   -validity 36500    为证书有效期,单位为天,所以36500表示100年

    server214         红色的server214为该证书的名字,可以修改

    该命令必须在服务器上执行,执行后,该证书已经是服务器信任的证书了。

4> 回车时,会要求输入:

5.png

输入证书密码(SA88907):

名字和姓氏(注意这里必须是发布后的服务器访问域名例如:192.168.0.128 或siit-cn.com):

其它信息可以填写可以不填写,询问是否正确时,输入Y就行:

5> 最后的密码不用设置,直接回车就行:

6.png

6> 查看生成好的证书:

7.png


生成客户端证书

1> 利用以下命令生成:

keytool -genkey -v -alias siit_client -keyalg RSA -storetype PKCS12 -keystore D:\siit_client.p12

备注:

   D:\siit_client.p12     生成证书的保存地址和正常保存名称

2> 生成填写和服务端证书生成相同

3> 生成好的证书如下:

   9.png


服务端安装证书

服务端证书安装

生成服务端证书时在服务端生成,所以默认是安装好了的。不用再安装。

客户端证书安装

1> 服务器端导入库中的证书要求是CER的,客户端生成的证书是PKCS12的,所以这里用以下命令将PKCS12证书转为CER,再用:

keytool -export -alias siit_client -keystore D:\siit_client.p12 -storetype PKCS12 -storepass SA88907 -rfc -file D:\client2Server.cer

备注:

    D:\siit_client.p12        客户端证书位置

    D:\ client2Server.cer    转换为CER证书后存放位置

    SA88907               PKCS12证书的密码

    siit_client               红色的这个要和生成PKCS12证书时的一致。

1212.png

2> 生成好的证书如下:

12.png

3> 将生成好的证书:client2Server.cer  复制到服务器上的目录,暂定复制到d:盘下。

4> 在服务器上执行以下命令将CER证书添加到信任列表中:

keytool -import -v -file D:\client2Server.cer -keystore D:\siit.keystore

  备注:

       D:\client2Server.cer   为拷贝到服务器上的证书地址

       D:\siit.keystore       为第一章说的生成的服务器端证书

5> 这样就完成了服务端的所有证书处理,可以查看服务器端现有信任的证书列表

keytool -list -keystore D:\siit.keystore


客户端安装证书

服务端证书安装

1> 将服务器端的siit.keystore导出为CER证书:

keytool -keystore D:\home\tomcat.keystore -export -alias siit214 -file D:\serverClient.cer

备注:

siit214  为生成服务器端证书的名字

D:\serverClient.cer  这个为导出的证书储存位置

13.png

2> 将serverClient.cer拷贝到客户端,双击安装证书,全部点击下一步即可。

14.png

客户端证书安装

在客户PC机器上双击证书就可以安装,全部点击下一步,密码输入生成证书时输入的密码

服务器端认可

服务器证书配置

参见双向认可的《生成服务端证书》。


Tomcat Https发布说明。

Tomcat\conf\server.xml   中配置tomcat端口的那个xml节点注释掉,切换为以下:


<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"

SSLEnabled="true" maxThreads="150" scheme="https"

secure="true" clientAuth="true" sslProtocol="TLS"

keystoreFile="D:\\siit.keystore" keystorePass="123456"

truststoreFile="D:\\siit.keystore" truststorePass="123456" />



备注:

     port 为浏览器中请求的端口,可以自行调整

     maxThreads  最大线程数可以自行调整。

     keystoreFile  服务器证书文件路径,参见生成服务器证书。

     keystorePass 服务器证书密码

     truststoreFile  信任的客户端证书列表,都加到了服务器证书列表中了,所以这里就配置服务器证书库就行了。

     truststorePass    信任的客户端证书列表密码

样例:

15.png