Tomcat设置https协议(本地测试)
一、通过JDK自带的keytool工具,创建自己的证书
- 打开cmd.exe,进入%JAVA_HOME%\bin目录,或者将该目录加入环境变量。输入下列命令:
keytool -genkey -alias 别名 -keyalg RSA -keystore 输出位置
(命令中的别名和输出位置可以自己设定)
如下图:
- 根据提示输入所需参数:
密钥库口令(在配置tomcat时会用到)
您的名字与姓氏是什么?(这里输入需要用到https协议的域名或ip,也可以localhost)
组织单位、组织名称、城市名称、省市名称、地区代码(可填可不填,一般就不填)
输入y,回车确认。输入n,重新填写参数。
输入密钥口令(不知道有什么用),和密钥库口令相同,按回车
二、 配置Tomcat的server.xml文件
添加如下代码:
<Connector SSLEnabled="true" clientAuth="false" keystoreFile="D:/test/tomcatkey.jks" keystorePass="123456" maxThreads="150" port="8443" protocol="org.apache.coyote.http11.Http11Protocol" scheme="https" secure="true" sslProtocol="TLS"/>
<!-- clientAuth表示是否验证客户端证书,单向验证不需要。
port端口号,设置https协议的端口号,默认端口为443 -->
测试:
三、 设置Tomcat的web.xml实现https自动跳转。
在web.xml中添加如下代码:
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<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>