生成证书
进入到Tomcat的conf目录下
在Tomcat的conf目录下输入生成证书命令
keytool -genkey -alias tomcat -keyalg RSA -validity 3600 -keystore .keystore
参数详解
- keytool -genkey:自动使用默认的算法生成公钥和私钥
- alias[名称]:给证书取个别名
- keyalg:制定密钥的算法,如果需要制定密钥的长度,可以再加上keysize参数,密钥长度默认为1024位,使用DSA算法时,密钥长度必须在512到1024之间,并且是64的整数倍
- keystore:参数可以指定密钥库的名称。密钥库其实是存放迷药和证书文件,密钥库对应的文件如果不存在会自动创建。
- validity:证书的有效日期,默认是90天
- keypass changeit:不添加证书密码
- storepass changeit:不添加存储证书的密码
按照命令提示往下操作
Tomcat配置https
在/tomcat/conf的安装目录下的找到server.xml 文件,修改 server.xml 文件,配置https连接器。新增一个Connector,tomcatm默认只有8080的。
tomcat 8.0以上的版本配置
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/.keystore"
type="RSA" certificateKeystorePassword="123456" />
</SSLHostConfig>
</Connector>
tomcat8及8以下的版本配置
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="conf/.keystore" keystorePass="123456"
/>
启动Tomcat访问8443端口
web项目强制跳转https
在项目的web.xml最后加上如下代码即可
<!-- 配置http自动转为 https -->
<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>