这里所采用的是tomcat本地免安装服务器、浏览器,android进行访问https。
1.服务器端的配置
在tomcat根目录下conf目录下server.xml 找到以下标识的取消注释进行修改
<!--Define a SSL HTTP/1.1 Connector on port 8443 注释的内容
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
connectionTimeout="20000"
redirectPort="8443"
keystoreFile="D:/ssl/xxx.jks"
keystorePass="123456"
truststoreFile="D:/ssl/xxx.jks"
truststorePass="123456"
clientAuth="false" sslProtocol="TLS" />
参数说明
connectionTimeout :添加超时时间
keystoreFile :签名文件
truststoreFile :信任文件
clientAuth: 是否开启双向验证
2.签名、证书的生成
服务器签名文件
keytool -genkey -alias server -keyalg RSA -keystore server.jks -validity 3600 -keypass 123456 -storepass 123456 -ext san=ip:192.168.18.171
客户端签名文件
keytool -genkeypair -alias client -keyalg RSA -validity 1000 -keypass 123456 -storepass 123456 -keystore client.jks
导出自建证书
服务端
keytool -export -alias server -file server.cer -keystore server.jks -storepass 123456
客户端
keytool -export -alias client -file client.cer -keystore client.jks -storepass 123456
证书交换:
(将客户端证书导入服务端keystore中,再将服务端证书导入客户端keystore中, 一个keystore可以导入多个证书,生成证书列表)
生成客户端信任证书库(由服务器端证书生成的证书库):
keytool -import -v -alias server -file D:\ssl\server.cer -keystore D:\ssl\truststore.jks -storepass 123456
将客户端证书导入到服务器证书库(使得服务器信任客户端证书):
keytool -import -v -alias client -file D:\ssl\client.cer -keystore D:\ssl\server.jks -storepass 123456
查看证书库中全部证书:
查看证书库中全部证书:
keytool -list -keystore D:\ssl\server.jks -storepass 123456
在android 客户端中jks不能使用只能使用bks文件,需要借助工具进行转换。
运用Portecle工具进行转换证书(将client.jks和truststore.jks转换为bks文件):
转换tools--change keystore type--bks
tomcat SSL证书安装:
数安时代 tomcat SSL配置