这里使用JDK自带的keytool工具来生成证书:

keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "g:tomcat.keystore"

以上命令将生产一对非对称密钥和自我签名的证书g:tomcat.keystore
注意:“名字与姓氏”应该是域名,输成了姓名,和真正运行的时候域名不符,会出问题
这里我输入的密码是123456, 域名是以tomcat为例, 省市以广东深圳为例
keytool工具介绍
定位到tomcat服务器的安装目录, 找到conf下的server.xml文件


<!-- <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> -->
去掉注释,修改为:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/home/weblogic12/apache-tomcat-cnooc/ssh/tomcat.keystore" keystorePass="changeit" />

在浏览器中输入: https://localhost

Http自动跳转Https
①编辑conf/web.xml文件
②在web.xml末尾加上如下配置,直接在节点下和同级:
<!--开启http强制跳转https访问--> <login-config> <!-- Authorization setting for SSL --> <auth-method>CLIENT-CERT</auth-method> <realm-name>Client Cert 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>
修改非SSL连接器的请求跳转到SSL连接器上,修改如下配置:
原来为: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />修改为: <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />
1、将默认8080端口修改为80端口,访问时就不需要加8080端口了,因为HTTP协议默认走的是80端口
2、将8443端口修改为443端口,意思是来自80端口的请求都跳转至443端口
以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。
您可能感兴趣的文章: