首先需要知道
HTTP+加密+数据完整性保护+认证=HTTPS
HTTP+SSL=HTTPS (在TCP与HTTP之间多了一层SSL/TSL协议)
所以配置Tomcat使用https协议,你需要以下几步:
1.创建tomcat证书
2.修改Tomcat的配置文件server.xml
3.导出Tomcat的证书
4.将Tomcat的证书安装到浏览器
注意点:
1.使用JDK自带的keytool工具来生成证书。
其中keytool.exe是在jdk的安装目录下的bin下,比如这里默认是
C:\Program Files\Java\jdk1.8.0_112\bin
在此处打开命令行窗口,win7是按住shift,然后鼠标右击,在此处打开命令行窗口。
然后输入:
keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "g:\tomcat.keystore"
其中后面是证书存放的路径。
然后按照提示输入相关内容:
密钥库指令为6位字符。
名字与姓氏对应域名,这里是localhost。
其它内容根据自己实际情况填写。
回车之后会在g盘下生成tomcat.keystore文件。
记住上面输入的密码。后面会用到。
2.生成证书时名字与姓氏应该输入域名。
比如这里我是用的本电脑的Tomcat,所以姓名与姓氏填写的是localhost。
找到Tomcat目录下的conf下的server.xml
使用Edit plus等打开,找到connector便签的位置,默认是注释掉的。
现在将其修改为:
注:
1.在互联网上,http协议的默认端口是80,https的默认端口是443,所以这里将其改为443。
2.keystoreFile就是上面生成证书的路径,而keystorePass就是刚才设置的密码。
3.参数说明:
clientAuth: 如果想要Tomcat为了使用这个socket而要求所有SSL客户出示一个客户证书,置该值为true。
sslProtocol: socket使用的加密/解密协议。如果使用的是Sun的JVM,则不建议改变这个值。据说IBM的1.4.1版的TLS协议的实现和一些流行的浏览器不兼容。这种情况下,使用SSL。
protocol:原来属性是"HTTP/1.1",如果启动tomcat报错,将其修改为"org.apache.coyote.http11.Http11Protocol"
4.keystoreFile:这里是用的绝对路径,如果创建的keystore文件不在Tomcat认为的缺省位置(一个在Tomcat运行的home目录下的叫.keystore的文件),则加上该属性。可以指定一个绝对路径或依赖$CATALINA_BASE环境变量的相对路径。
这里是用的绝对路径,路径为上面生成的证书的路径,也可以用绝对路径,使用绝对路径要依赖 $CATALINA_BASE环境变量。
5.关于配置Tomcat环境变量请参考:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/87606485
6.比如这里我们配置成功了Tomcat的环境变量,将上面生成的证书放在Tomcat的目录下
然后将上面的server.xml修改为相对路径:
这里是使用的360极速浏览器开启兼容模式,兼容IE。
启动Tomcat,直接输入:
https://localhost
会提示证书问题
为了能导出证书,在Tomcat下的webapps下的ROOT目录下新建hello.html
然后输入:
https://localhost/hello.html
然后右击网页空白处--属性--证书--详细信息
点击复制到文件
点击下一步
点击下一步
填写证书名,然后点击下一步
点击完成
导出成功,这里导出的路径是桌面,所以来到桌面可以看到证书文件。
找到浏览器的Internet选项--内容--证书
360浏览器是在工具中
点击证书
选择受信任的跟证书颁发机构,点击导入
点击下一步
点击浏览,选择刚才导出的证书
点击打开
点击下一步
点击下一步
点击完成
点击是
导入成功,点击确定。
我们在浏览器中直接输入:
https://localhost/
可以看到已经不提示证书问题了。
我们将项目部署到Tomvat下的webapps目录下,启动Tomcat,然后在浏览器中将url
改为:
https://localhost:443后面加项目路径 ,不会提示网页错误且能成功跳转则配置成功。