Tomcat + SSL双向认证(用keytool创建的证书)

步骤说明: 

1、为Tomcat配置https配置CA证书

  •  准备CA证书;

  •  配置Tomcat的SSL连接器

2、通过 https 方式访问Web站点

 

 实验过程:

1、创建自我签名的证书

Linux:

  • 进入 %JAVA_HOME%bin 目录: cd %JAVA_HOME%bin
  • 在某个目录下生成.keystore文件(这里的目录是 /usr/local/keystore/,文件名是server.keystore)
 ./keytool -validity 365 -genkey -v -alias server -keyalg RSA -keystore /usr/local/keystore/server.keystore

(注意: 输入命令后敲回车键,会让你输入域名及其他信息,此时的域名可以先确定好,后面会通过域名访问Web站点) 

  • 为客户端生成证书,以便让服务器来验证它。为了能将证书顺利导入至浏览器,证书格式应该是PKCS12

keytool -validity 365 -genkeypair -v -alias client -keyalg RSA -storetype PKCS12 -keystore /usr/local/keystore/client.p12
  • 导出证书(由于是双向SSL认证,客户端也要验证服务器证书,因此,必须把服务器证书添加到浏览的“受信任的根证书颁发机构”。由于不能直接将keystore格式的证书库导入,必须先把服务器证书导出为一个单独的CER文件)
 keytool -export -v -alias client -keystore /usr/local/keystore/client.p12 -storetype PKCS12 -storepass 123456 -rfc -file /usr/local/keystore/client.cer
  • 将该文件导入到服务器的证书库,添加为一个信任证书
keytool -import -v -alias client -file /usr/local/keystore/client.cer -keystore /usr/local/keystore/server.keystore -storepass 123456
  • 通过list命令查看服务器的证书库(可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书)
[root@localhost bin]# keytool -list -keystore /usr//local/keystore/server.keystore
  • 让客户端信任服务器证书 (双向SSL认证,客户端也要验证服务器证书,因此,必须把服务器证书添加到浏览的“受信任的根证书颁发机构”。由于不能直接将keystore格式的证书库导入,必须先把服务器证书导出为一个单独的CER文件)
[root@localhost bin]# keytool -keystore /usr/local/keystore/server.keystore -export -alias tomcat -file /usr/local/keystore/server.cer
  • 修改服务器端Tomcat的配置文件server.xml的配置(clientAuth="true"是双向认证, port默认是"8443",此时改成了443,则把配置文件中的8443端口都改为443[共3处])

 
  • 将自创建的服务器端证书导入受信任的根证书颁发机构下(可从浏览器中【设置-隐私设置和安全性 - 更多 - 管理证书】下进行导入)

  • 安装客户端证书(可双击.p12程序运行 或 将 .p12导入个人证书下)

  • 将在创建服务器端证书时给的CN参数(域名),写入客户端的hosts文件,使得客户端可通过域名访问Web站点

  • 访问https://域名:端口/    (此时的端口为443,有时需先打开443端口,可用命令:iptables -I INPUT -p tcp --dport 443 -j ACCEPT)

Tomcat + SSL双向认证(用keytool创建的证书)_第1张图片

 Tomcat + SSL双向认证(用keytool创建的证书)_第2张图片

 

总结:

服务器端(Server)需要:

1)KeyStore: 其中保存服务端的私钥

2)Trust KeyStore: 其中保存客户端的授权证书

客户端(Client)需要:

1)KeyStore:其中保存客户端的私钥

2)Trust KeyStore:其中保存服务端的授权证书

你可能感兴趣的:(Tomcat + SSL双向认证(用keytool创建的证书))