一、生成安全证书
二、配置tomcat 服务器
1、个人环境:
jdk 1.8 tomcat 7
2、生成安全证书:在jdk的安装目录下的 D:\Program Files (x86)\Java\jdk1.8.0_131\bin 目录下有keytool.exe 这个就是sun(oracle)公司提供的生成安全证书的工具
3、创建证书的命令: keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "E:\tomcat.keystore" -validity 3650
4、命令中的参数介绍如下:
5、安全证书生成过程:名字与姓氏为域名,其它的根据具体情况输入,我这里输入的密码是123456
以上命令将生产一对非对称密钥和自我签名的证书E:\tomcats.keystore.
将证书保存到你要存放的地方,我的保存在E:\tomcat.keystore
注意:“名字与姓氏”应该是域名,输成了姓名,和真正运行的时候域名不符,会出问题
这里我们在本地调试故使用了localhost作为“名字与姓氏”(即域名)
到这里我们就已经有了证书下面来配置tomcat
7、进入到Servers目录下修改server.xml ,找到这个配置,添加你的证书的地址以及密码
如果部署好程序后得在omcat 的conf 目录下修改server.xml ,不然修改不生效
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="E:\tomcat.keystore"
keystorePass="123456"
/>
8、到这里已经配置完成了,下面看看访问
选择继续浏览此网站
到这里我们的tomcat 配置也就成功了!
但是我们希望当我们访问某些页面的时候http请求方式自动转化为https协议,这样我们还得在配置一下tomcat
9、在tomcat的conf(或Servers)下的web.xml的最后添加配置文件实现http协议自动转化为https 协议同时修改一下server.xml 中配置文件的端口号:
1)、 修改了配置文件的端口号为443,同时将server.xml 中的redirectPort 的端口都改为443
注释之前的配置,端口号
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="E:\tomcat.keystore"
keystorePass="tomcat"
/>
-->
// 修改端口号
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="E:\tomcat.keystore"
keystorePass="tomcat"
/>
2)、配置文件添加在 <welcome-file-list> </welcome-file-list> 配置文件后面
<!--
对所有的请求都转化为https
-->
<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>
<!--
只对 .jsp 的请求自动转化为https
-->
<security-constraint>
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>*.jsp</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
以上二选一
在<url-pattern> 中可以配置你希望自动转化的请求路径 /* 、 login.html 、 login.jsp 等等。
到这里我们的所有配置都完成了,你就不用每次写https 只要是你在web.xml 配置文件中指定的请求路径都会自动转化为https 请求方式。不然都用http方式。