发布网友 发布时间:2022-04-22 22:40
共1个回答
热心网友 时间:2023-07-10 06:38
步骤:
假设我们tomcat的路径为/opt/tomcat,在此目录下新建ssl目录用于存放证书:
cd /opt/tomcat/ssl
一、首先,我们需要生成SSL证书,用到keytool工具,关键有三步:
①生成keystone,用以下命令
#keytool -genkey -alias ssologin -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3650
注:changeit是jdk中证书默认的密码
②从keysotre中导出别名为tomcat-cas-server的证书,生成server.crt文件
#keytool -export -trustcacerts -alias ssologin -file server.crt -keystore server.keystore -storepass changeit
③将server.crt导入到jre的可信任证书仓库
#keytool -import -trustcacerts -alias ssologin -file server.crt -keystore "$JAVA_HOME/jre/lib/security/cacerts" -storepass changeit
注意:如果是windows主机,使用%JAVA_HOME%,如果是linux就使用$JAVA_HOME
二、配置好证书之后,我们需要配置tomcat支持SSL
修改conf/server.xml文件,其中SSL部分如下,其它不用动:
<Connector port="443" protocol="HTTP/1.1"
connectionTimeout="5000" URIEncoding="UTF-8"
scheme="https" secure="true" SSLEnabled="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/opt/tomcat/ssl/server.keystore"
keystorePass="changeit"/>
修改后之后,重启tomcat即可生效
再正式访问之前,记得把防火墙的443端口打开,centos的iptables配置如下:
#vi /etc/sysconfig/iptables
添加以下配置:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
配置完之后记得重启iptables:
#service iptables restart
iptables重启之后,你就可以通过浏览器访问了https://your.domain.com
三、tomcat作为SSL的客户端
如果我们的应用作为客户端需要与开启SSL的服务器进行通信,那我们必须将服务器证书安装在jre的可信列表中.
具体步骤是:将上述第一步中的第②小步生成的server.crt分发给需要使用的客户端,然后在客户端用keytool工具导入到jre的可信列表,如下命令:
#keytool -import -trustcacerts -alias ssologin -file server.crt -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit
注意:我这里的机器是windows机器,所以使用%JAVA_HOME%,其实这个导入过程和一.③是一样的
四、其它可能会用到的证书相关命令
①列出系统仓库中存在的证书名称:
#keytool -list -keystore "$JAVA_HOME/jre/lib/security/cacerts" -storepass changeit
如本文中添加的证书,会找到这么一行
ssologin, 2014-9-4, trustedCertEntry,
认证指纹 (MD5): 12:3B:02:6F:78:6E:A6:D3:AB:96:CA:63:7D:7B:55:04
②消除系统中存在的名为ssologin的证书
#keytool -delete -alias ssologin -keystore "$JAVA_HOME/jre/lib/security/cacerts" -storepass changeit
#keytool -delete -alias ssologin -storepass changeit