tomcat ssl配置
KeyStore模式
直接用java里的keytool工具生成一个keystore文件,然后直接用这个文件启用https就可以了。
方法如下:
命令行执行%JAVA_HOME%\bin\keytool-genkey-aliastomcat-keyalgRSA
执行过程中会询问你一些信息,比如国家代码,省市等,其中需要填写两个密码,一次在开头,一次在最后,请保持两个密码相同。比如,将密码都设成s3cret。
执行完成后会在当前用户目录下生成一个.keystore文件
打开conf目录下的server.xml文件,找到以下这一段
<!-- <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> -->
修改为
<Connector SSLEnabled="true" acceptCount="100" clientAuth="false" disableUploadTimeout="true" enableLookups="false" keystoreFile="C:/Users/Administrator/.keystore" keystorePass="s3cret" maxThreads="25" port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true" sslProtocol="TLS"/>
之后启动tomcat就可以了,通过https方式访问8443端口,就能看到效果。如果用http访问之前的端口,那么还是普通的未加密连接。
到这里问题来了,我的目的是启用https,但现在http还能访问,那么就可以绕开https。https也就起不了什么作用了。因此要强制访问https。
打开你的web应用的web.xml文件,在最后加上这样一段
<security-constraint> <web-resource-collection> <web-resource-name>hello</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
Openssl生成ssl证书
参看使用openssl创建ssl证书
server.xml配置如下
<Connector protocol="org.apache.coyote.http11.Http11AprProtocol" port="443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" SSLCertificateFile="server.crt" SSLCertificateKeyFile="server.key" SSLPassword="s3cret" SSLVerifyClient="false" SSLProtocol="TLSv1"/>
tomcatapr安装
相关推荐
FanErZong 2020-07-18
86284851 2020-06-16
85427617 2020-06-13
88291846 2020-06-07
86284851 2020-02-28
81510598 2020-01-08
88291846 2020-01-04
86284851 2019-12-28
detianlangzi 2014-06-17
85427617 2019-12-24
87497118 2019-11-28
82981634 2014-03-25
85427617 2015-08-19
81510598 2019-11-11
86284851 2019-11-08
doITwhat 2015-09-11