tomcat8 配置https安全访问

环境: Jdk 1.8、Tomcat8

一、使用Jdk自带的工具生成数字证书

1、在 命令行 执行如下代码:
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
2、出现如下界面,根据提示输入信息;

输入密钥库口令:123456
再次输入新口令:123456
您的名字与姓氏是什么?
 [Unknown]:  aaa
您的组织单位名称是什么?
 [Unknown]:  aaa
您的组织名称是什么?
 [Unknown]:  edu
您所在的城市或区域名称是什么?
 [Unknown]:  xiamen
您所在的省/市/自治区名称是什么?
 [Unknown]:  xiamen
该单位的双字母国家/地区代码是什么?
 [Unknown]:  cn
CN=cnblogs, OU=cnblogs, O=cnblogs, L=beijing, ST=beijing, C=cn是否正确?
 [否]:  y

输入 <tomcat> 的密钥口令
       (如果和密钥库口令相同, 按回车):

3、执行完成后,当前目录下会生成一个.keystore文件;
4、将.keystore文件复制到 tomcat 的 bin 目录下;

二、修改Tomcat的server.xml文件支持Https

1、打开conf目录下的server.xml文件,Https配置默认是注释掉的,如下图所示:

2、去掉上图红色框的注释,让配置生效,默认端口为8443。再加上数字证书的属性,如下:
keystoreFile="bin/.keystore",此为keystore文件路径;
keystorePass="123456",此密码就是生成证书时的密码;

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" 
	       scheme="https" secure="true"
	       clientAuth="false" sslProtocol="TLS"
               keystoreFile="bin/.keystore" keystorePass="123456" >
</Connector>

三、启动tomcat测试

1、启动tomcat;
2、访问页面 https://localhost:8443/ ,如下图所示:

四、配置http的访问地址自动转换为https

1、在 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>

完成以上步骤后,在浏览器中输入http的访问地址也会自动转换为https了。

posted @ 2022-03-14 22:39  hapyeveryday  阅读(342)  评论(0)    收藏  举报