Https_Tomcat服务器端配置
配置方法:
1. 第一步:为服务器生成证书
使用keytool为Tomcat生成证书,假定目标机器的域名是“localhost”,keystore文件存放在“E:\tomcat.keystore”,使用如下命令生成:
keytool -genkey -v -alias tomcat -keyalg RSA -keystore E:\tomcat.keystore
安装提示输入用户名,组织,地区,国家等,即可正确生成,该步为服务器生成了证书。单向认证的话,到这一步即可。但是这样产生的证书,因为没有经过专门的CA认证,浏览器访问时,会弹出警告。
2. 第二步:修改https配置
打开tomcat/conf目录下的server.xml文件并找到关于ssl的相关段,去掉注释,添加
keystoreFile="E:/tomcat.keystore" keystorePass="123123"
truststoreFile="E:/tomcat.keystore"truststorePass="123123"
两段代码,keystorePass的值为前面设置的密码。
修改后的配置如下 :
<Connectorport="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https"secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="E:/tomcat.keystore"keystorePass="123123"
truststoreFile="E:/tomcat.keystore"truststorePass="123123" />
说明:其中,clientAuth指定是否需要验证客户端证书,如果该设置为“false”,则为单向SSL验证,SSL配置可到此结束。如果clientAuth设置为“true”,表示强制双向SSL验证 ,必须验证客户端证书。如果clientAuth设置为“want”,则表示可以验证客户端证书,但如果客户端没有有效证书,也不强制验证。 true是 服务器不会颁发证书必须由客户端导入 。重启服务器,输入url:https://localhost/可看到tomcat欢迎页面,即为成功。
3. 第三步:强制https访问
在tomcat\conf\web.xml中的</welcome-file-list>后面加上这样一段:
<login-config>
<!--Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>ClientCert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!--Authorization setting for SSL -->
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
完成以上步骤后,在浏览器中输入http的访问地址也会自动转换为https了。
4. 第四步:将APR library注释掉
将tomcat\conf\service.xml中
<ListenerclassName="org.apache.catalina.core.AprLifecycleListener"SSLEngine="on" />注释掉。
以上步骤完成后重启Tomcat,HTTPS即设置成功。