欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

配置本地Tomcat的https  

程序员文章站 2022-03-03 10:46:53
...
配置本地Tomcat的https
(一)采用keytool生成证书
步骤:
1、 生成证书
keytool -genkey -alias tomcat -keyalg RSA -keystore d:\mykeystore -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" -keypass changeit -storepass changeit
参数说明:
1)-genkey    创建一个新的密钥
2)-alias      密钥别名
3)-keyalg     加密算法,这里是RSA
4)-keystore   密钥保存的文件
5)-dname    表示密钥的distinguished names
              CN=commonName
              OU=oranizationUnit
              O = organizationName
              L=locatityName
              S=stateName
              C=country
6)-keypass    私有密钥的密码
7)-storepass   存取密码,用于从存储密钥的文件中(位于-keystore中指定的位置)将信息取出
2、 导出证书(说明:导出证书,由客户端安装)
keytool -export -alias tomcat -keystore d:\mykeystore -file d:\mycerts.cer -storepass changeit
参数说明:
1)-export    导出指定别名的证书到文件
2)-alias      密钥别名
3)-keystore    密钥保存的文件
4)-file         导出到指定的文件中
5)- storepass  密钥保存的文件的存储密码
3、 客户端配置(为客户端的JVM导入密钥(将服务器下发的证书导入到JVM中))
keytool -import -trustcacerts -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -file d:\mycerts.cer -storepass changeit
参数说明:
1)-import    将已签名数字证书导入密钥库
2)-trustcacerts 
3)-file       数字证书路径
验证是否成功导入到JVM证书库
keytool -list -alias tomcat -keystore "%JAVA_HOME%/jre/lib/security/cacerts " -storepass changeit
4、 其它命令
1、从jvm证书库中删除证书
keytool -delete -alias tomcat –keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit
2、从jvm证书库中导出证书
keytool -export -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit -alias tomcat -file d:\ mycerts.cer
(二)配置Tomcat
1、注销server.xml中的语句:
<!--<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />-->
否则tomcat会出现以下错误:
INFO: Initializing ProtocolHandler ["http-apr-8443"]
Jul 5, 2011 3:20:16 PM org.apache.coyote.AbstractProtocol init
SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-apr-8443"]
java.lang.Exception: Connector attribute SSLCertificateFile must be defined when using SSL with APR
分析见:http://java.dzone.com/articles/ssl-your-tomcat-7
2、放开以下注释
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"       
      keystoreFile="D:\mykeystore" keystorePass="changeit" />

实践过程:
keytool -genkey -alias tomcat -keyalg RSA -keystore "C:\Program Files\PE_TLM_SYS\WEBCLIENT\webclient\apache-tomcat-6.0.26\javakeystore" -dname "CN=localhost, OU=localhost, O=localhost, L=HZ, ST=HZ, C=CN" -keypass changeit -storepass changeit

keytool -export -alias tomcat -keystore "C:\Program Files\PE_TLM_SYS\WEBCLIENT\webclient\apache-tomcat-6.0.26\javakeystore" -file "C:\Program Files\PE_TLM_SYS\WEBCLIENT\webclient\apache-tomcat-6.0.26\javacerts.cer" -storepass changeit

keytool -import -trustcacerts -alias tomcat -keystore "C:\Program Files\PE_TLM_SYS\WEBCLIENT\webclient\jre\lib\security\cacerts" -file "C:\Program Files\PE_TLM_SYS\WEBCLIENT\webclient\apache-tomcat-6.0.26\javacerts.cer" -storepass changeit

keytool -list -alias tomcat -keystore "C:\Program Files\PE_TLM_SYS\WEBCLIENT\webclient\jre\lib\security\cacerts" -storepass changeit

若想同时去掉8443端口号,将配置文件中的所有8443改成443即可。

 

制作证书的步骤
1、 生成证书
keytool -validity 3650 -genkey -alias tomcat -keyalg RSA -keystore "C:\Program Files\PE_TLM_SYS\WEBCLIENT\webclient\apache-tomcat-6.0.26\etc\javakeystore" -dname "CN=localhost, OU=localhost, O=localhost, L=HZ, ST=HZ, C=CN" -keypass tlmsys -storepass tlmsys
2、 导出证书(说明:导出证书,由客户端安装)
keytool -export -alias tomcat -keystore "C:\Program Files\PE_TLM_SYS\WEBCLIENT\webclient\apache-tomcat-6.0.26\etc\javakeystore" -file "C:\Program Files\PE_TLM_SYS\WEBCLIENT\webclient\apache-tomcat-6.0.26\etc\javacerts.cer" -storepass tlmsys
3、 客户端配置(为客户端的JVM导入密钥(将服务器下发的证书导入到JVM中))
keytool -import -trustcacerts -alias tomcat -keystore "C:\Program Files\PE_TLM_SYS\WEBCLIENT\webclient\jre\lib\security\cacerts" -file "C:\Program Files\PE_TLM_SYS\WEBCLIENT\webclient\apache-tomcat-6.0.26\etc\javacerts.cer" -storepass tlmsys
4、验证是否成功导入到JVM证书库
keytool -list -alias tomcat -keystore "C:\Program Files\PE_TLM_SYS\WEBCLIENT\webclient\jre\lib\security\cacerts" -storepass tlmsys
如果证书已存在,请删除C:\Program Files\PE_TLM_SYS\WEBCLIENT\webclient\jre\lib\security下的cacerts文件。然后重新制作证书。
5、注销server.xml中的语句:
<!--<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />-->
6、放开以下注释,并修改内容如下;
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
      keystoreFile="C:\Program Files\PE_TLM_SYS\WEBCLIENT\webclient\apache-tomcat-6.0.26\etc\javakeystore"
      keystorePass="tlmsys"
      />
7、如果使用spring security,注意在applicationContext-security.xml中进行以下配置。
<intercept-url pattern="/**" access="isAuthenticated()" requires-channel="https"/>
requires-channel="https"是增加内容。
此项不是必须的,可以不配,不影响https。
8、访问方式为https://10.36.65.89:8443/,如果想去掉端口后,请将server.xml中的所以的8443端口改为443。tomcat可以同时支持http和https协议,只需同时
配置8080和8443端口即可。