双向认可
生成服务端证书(必须在服务器上执行)
1> 进入命令行,如下:
2> 进入jdk安装目录下的bin目录:
3> 用以下命令生成证书:
keytool -genkey -v -alias server214 -keyalg RSA -keystore D:\siit.keystore -validity 36500
备注: D:\siit.keystore 为生成的证书保存的位置和文件名
-validity 36500 为证书有效期,单位为天,所以36500表示100年
server214 红色的server214为该证书的名字,可以修改
该命令必须在服务器上执行,执行后,该证书已经是服务器信任的证书了。
4> 回车时,会要求输入:
输入证书密码(SA88907):
名字和姓氏(注意这里必须是发布后的服务器访问域名例如:192.168.0.128 或siit-cn.com):
其它信息可以填写可以不填写,询问是否正确时,输入Y就行:
5> 最后的密码不用设置,直接回车就行:
6> 查看生成好的证书:
生成客户端证书
1> 利用以下命令生成:
keytool -genkey -v -alias siit_client -keyalg RSA -storetype PKCS12 -keystore D:\siit_client.p12
备注:
D:\siit_client.p12 生成证书的保存地址和正常保存名称
2> 生成填写和服务端证书生成相同
3> 生成好的证书如下:
服务端安装证书
服务端证书安装
生成服务端证书时在服务端生成,所以默认是安装好了的。不用再安装。
客户端证书安装
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证书时的一致。
2> 生成好的证书如下:
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 这个为导出的证书储存位置
2> 将serverClient.cer拷贝到客户端,双击安装证书,全部点击下一步即可。
客户端证书安装
在客户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 信任的客户端证书列表密码
样例: