Tomcat配置https

2 篇文章 0 订阅

有的网站服务在web层数据传输时,需要保证数据的私密性,这时候就需要用到https来发送请求/接受数据。设置https又是需要求网站全局进行设置,有时仅仅需要对个别请求进行设置,比如登录(用户需要提交密码等隐私信息)。

在tomcat中配置https,可按照以下步骤进行操作:


1. 使用jdk自带的keytool生成证书

cmd进入java的安装目录下的bin文件夹,再执行以下语句(最后一个参数为生成证书的位置,可按需更改):

keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "D:\tomcat.keystore"  

按照步骤完成设置,并生成keystore文件


① 输入密钥库口令:如123456

② 再次输入新口令:即确认,再次输入123456

③ 您的名字与姓氏是什么:随便输入

④ 您的组织单位名称是什么:随便输入

⑤ 您所在的城市或区域名称是什么:随便输入

⑥ 您所在的省/市/自治区名称是什么?:随便输入

⑦ 该单位的双字母国家/地区代码是什么?:随便输入,如:CN

⑧ 是否正确:输入“y

⑨ 输入 <tomcat> 的密钥口令 :输入①设置的口令,如123456

⑩ 再次输入新口令输入①设置的口令,如123456

完成以上步骤,若没报错,则证书生成成功。


2.配置tomcat目录下conf/server.xml文件

找到以下被注释的内容:

    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->
修改为:

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true" 
			   clientAuth="false" sslProtocol="TLS" keystoreFile="D:/tomcat.keystore"
			   keystorePass="123456">
       
    </Connector>
说明:https端口为8443,相应的需要修改步骤1存放的keystore文件的位置,以及设置的keystorePass密钥口令。

至此,https就配置好了,访问https://localhost:8443/就可以work了。


3.强制使用https访问

正如开头提到的,有的时候为了保证数据的安全性,我们需要让request必须通过https提交。这时候我们就需要在tomcat的conf/web.xml进行设置了。

3.1 设置全局https

在web.xml的最后,</welcome-file-list>之后,</web-app>之前,加上以下内容:

<security-constraint> 
   <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>
3.1 设置局部https

当我们仅需要对某一个url请求或某几个url请求强制https时,只需要更改以上的<url-pattern>/*</url-pattetn>即可。如下是控制https://ip/app/fts/login请求:

<security-constraint> 
   <web-resource-collection > 
		  <web-resource-name >SSL</web-resource-name> 
		  <url-pattern>/fts/login</url-pattern> 
   </web-resource-collection>
						 
   <user-data-constraint> 
		  <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
   </user-data-constraint> 
</security-constraint>

多个url,加多个<url-pattern>即可。







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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值