【JAVA WEB】TOMCAT服务器配置HTTPS

/****************
 * tomcat配置

 ****************/

打开tomcat/conf/server.xml会发现有下面一段配置被注释着:

    <!--

    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

               maxThreads="150" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" />

    -->
这段配置可以让tomcat支持SSL连接。默认是注释的。取消他的注释,并按需修改。secure必须设置为true,scheme必须设计为https。

如果你更改了SSL端口8443为其他端口,你必须修改其他非SSL的redirectPort,因为非SSL连接会重定向那些需要SSL安全约束的用户请求到你所修改的那个端口。

去掉注释,并启动tomcat,输入 https://localhost:8443 就可以看到SSL加密效果。 8443是配置的ssl请求连接端口。


/****************
 * 可能存在问题1:
 * 启动tomcat时,提示找不到.keystore文件
 ****************/

使用SSL协议加密是需要证书的,所以即使配置了 keystorefile ,也还需要一个 .keystore 文件。


解决方案:

在cmd下运行 keytool -genkey -alias tomcat -keyalg RSA

如要输入密码:输入: changeit
剩下的就填填就好了(有建议说名子和姓氏不要用 IP ,要用域名),完成后 C:\Documents and Settings\Administrator (或者C:\users\用户名)下面就会生成.keystore 文件。

keytool命令是JDK中自带的,若提示无效的指令,请检查JDK的环境变量是否配置正确。


/****************
 * 可能存在问题2:
 * 提示can not cover key
 ****************/

keytool -genkey -alias tomcat -keyalg RSA
执行过程中会询问你一些信息,比如国家代码,省市等,其中需要填写两个密码,一次在开头,一次在最后,请保持两个密码相同。比如,我将密码都设成changeit。


/****************
 * 可能存在问题3:
 * 已经创建了keystore,并且已经犯了问题2的错误。
 ****************/

这种时候,你再想重复创建这个别名就会提示你别名已存在。

这边我采取直接删除名为"tomcat"的这个alias,然后重新创建。
命令行键入:keytool -delete -alias tomcat 
提示输入密钥库口令,按之前设置的输入。


/****************
 * 可能存在问题4:
 * 创建的地址不在默认位置
 ****************/

tomcat配置文件中,指定keystore文件的目录:
keystoreFile="bin/.keystore"


/****************
 * 完全配置成功之后,访问https://localhost:8443
 * 出现相应的安全提醒
 ****************/

那么这时候问题来了,通过8443端口可以进行https请求。
同时也可以通过8080(你自己设置的端口号)来进行http请求。


我们希望客户端(或者其他的)只能通过https来请求我们的服务,
就必须禁用不安全的http请求方式,或者使http重定向为https


解决方法:

在tomcat\conf\web.xml中的</welcome-file-list>后面加上这样一段:

<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>


  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值