最近工作中需要tomcat配置HTTPS
整理一些好帖做下记录
(1)进入到jdk下的bin目录
(2)输入如下指令“keytool -v -genkey -alias tomcat -keyalg RSA -keystore d:/tomcat.keystore”
d:/tomcat.keystore是将生成的tomcat.keystore放到d盘根目录下。注意若要放到c盘,在win7系统下,需要以管理员身份进入到命令行中进行操作,否则是无法创建tomcat.keystore的。本例放到d盘下。
如何以管理员身份进入到命令行下呢?开始->搜索框中输入cmd->等待(注意不回车)->出现cmd.exe->右键“以管理员身份运行”即可。
(3)输入keystore密码
密码任意,此处以123456为例,要记住这个密码,之后在进行server.xml配置时需要使用。
(4)输入名字、组织单位、组织、市、省、国家等信息
(5)输入之后会出现确认的提示
此时输入y,并回车。此时创建完成keystore。
进入到D盘根目录下可以看到已经生成的tomcat.xml
(6)输入tomcat的主密码
可以直接回车,默认为同keystore的密码一样。
之后,会显示正在存储即完成。
(7)进入tomcat文件夹
找到conf目录下的sever.xml并进行编辑
将所有以<Connector port="8443" 开头的connector注释。
(8)在sever.xml中添加加载keystore的代码
注意方框中的keystore的密码,就是刚才我们设置的“123456”.
编辑完成后关闭并保存sever.xml。
(9)启动tomcat。
若出现如下错误“Keystore was tampered with,or password was incorrect”,即第(8)步设的密码出错了。请核对密码,重新编写sever.xml。
(10)启动成功后,使用https://127.0.0.1:8443 访问页面
页面成功打开即tomcat下的https配置成功。
上述方法试验以后,项目启动的时候还是报错。
解决方法为: <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
protocol="HTTP/1.1"
替換成
protocol="org.apache.coyote.http11.Http11Protocol"
。重新启动项目,这样应该成功了。
1、在tomcat的server.xml中配置以下信息:
<Connector protocol="org.apache.coyote.http11.Http11Protocol"
port="8081" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="C:/tomcat.key" keystorePass="Galax8800"
clientAuth="false" sslProtocol="TLS"/>
2、将此文件放置在上面提到的keystoreFile所指向的目录中:
生成key的命令:keytool -genkey -keyalg RSA -alias tomcat
3、在工程的web.xml中配置以下的拦截请求,若是此种请求的话都将转至https服务。
<security-constraint>
<web-resource-collection>
<web-resource-name>sslapp</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>