tomca7 配置 SSL 证书

本文介绍了如何在Windows 10环境下使用Java命令生成SSL证书,并在Tomcat服务器中配置该证书以实现HTTPS访问。首先创建keys文件夹,然后通过keytool工具生成keystore和.crt文件。接着在Tomcat的server.xml中配置SSL连接器,指定keystoreFile、keystorePass等参数。最后,若要强制所有请求通过HTTPS,可在web.xml中添加安全约束。完成配置后,可以通过https://localhost:8443/访问HTTPS站点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SSL证书可以去各个平台,如果腾讯云、阿里上面都有免费的证书,这里使用的是Java生成的【.crt】证书。

环境:win10系统

Java命令生成证书的步骤如下:

1、先创建一个 keys 文件夹,我的证书是放在 d:/Java_KaiFa/project/demo/shrio/sso/keys 里面的,位置可以随便放,只要在生成证书时的命令和配置tomcat的时候把路径配置对就可以了。

2、使用命令:

第一个命令:
keytool -genkey -alias keystore -keyalg RSA -keystore d:/Java_KaiFa/project/demo/shrio/sso/keys/keystore


第二个命令:
keytool -export -file d:/Java_KaiFa/project/demo/shrio/sso/keys/keystore.crt -alias keystore -keystore d:/Java_KaiFa/project/demo/shrio/sso/keys/keystore

生成好的ssl证书如下:

 接下来就是配置tomcat 7了。

打开tomcat的conf文件夹中的server.xml文件:

添加一个配置:

	<Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="D:\Java_KaiFa\project\demo\shrio\sso\keys\keystore" keystorePass="123456"
           clientAuth="false" sslProtocol="TLS"/>

这个配置是在文件中有的,只是被注释掉了,所以这里就不打开配置文件的注释,直接添加就好了。

keystorePass:这个是生成证书的时候输入的密码。

字段配置

属 性描  述
clientAuth如果设为true,表示Tomcat要求所有的SSL客户出示安全证书,对SSL客户进行身份验证
keystoreFile指定keystore文件的存放位置,可以指定绝对路径,也可以指定相对于<CATALINA_HOME> (Tomcat安装目录)环境变量的相对路径。如果此项没有设定,默认情况下,Tomcat将从当前操作系统用户的用户目录下读取名为 “.keystore”的文件。
keystorePass指定keystore的密码,如果此项没有设定,在默认情况下,Tomcat将使用“changeit”作为默认密码。
sslProtocol指定套接字(Socket)使用的加密/解密协议,默认值为TLS,用户不应该修改这个默认值。
ciphers指定套接字可用的用于加密的密码清单,多个密码间以逗号(,)分隔。如果此项没有设定,在默认情况下,套接字可以使用任意一个可用的密码。

这个时候就可以启动该tomcat了,https://localhost:8443/,输入这个网址,就可以进行 https 的访问了,原来的 http  请求还是可以访问tomcat的。

如果想要所有的请求都必须是https,那么就想要对conf文件夹下的web.xml进行配置了。

web.xml添加配置:直接将这个配置写入到<web-app></web-app>标签内就可以了。

	<security-constraint>
		<web-resource-collection>
			<web-resource-name>securedapp</web-resource-name>
			<url-pattern>/*</url-pattern>
		</web-resource-collection>
		<user-data-constraint>
			<transport-guarantee>CONFIDENTIAL</transport-guarantee>
		</user-data-constraint>
	</security-constraint>

将 URL 映射设为 /* ,这样你的整个应用都要求是 HTTPS 访问,而 transport-guarantee 标签设置为 CONFIDENTIAL 以便使应用支持 SSL。

注意,此时你通过http也是可以访问的,但是服务器会自动的跳转到https的路径上,然后我们要清楚,http的默认端口号是80,而https的默认端口为443。

如果你希望关闭http自动跳转到https ,只需要将 CONFIDENTIAL 改为 NONE 即可。

https配置成功后访问tomcat的默认页面如下,注意网址部分:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值