记录一下tomcat配置https协议访问
网上看到好多关于tomcat配置https协议访问的相关文档,基本上都是通过java自带的工具实现的,但是后面的一些步骤好像都不太一样呢,这里就记录一下
总结了一下大致分为三个步骤
- 生成密钥库
keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\tomcat.keystore -validity 36500
打开doc 窗口,直接执行上述命令,有一个前提是配置 JAVA_HOME 环境变量,没有配置的话就指定到 jdk/bin 目录下执行就可以了
-validity 36500 为有效时间天数
然后根据提示输入
输入密钥库口令:123456
再次输入口令:123456
您的名字和姓氏是什么?
输入:localhost (这里最好设置成访问的时候的域名)
您的组织单位名称是什么?
输入:demo (这里不清楚和什么有关)
您的组织名称是什么?
输入:demo (这里不清楚和什么有关)
您所在的城市或区域名称是什么?
输入:nj
您所在的省/市/自治区名称是什么?
输入:js
该单位的双字母国家/地区代码是什么?
输入:cn
.........校验上面输入信息是否正确?
输入:y
输入<tomcat> 的密钥库口令
(如果和密钥库口令相同,按回车)
建议回车即可
- 配置tomcat密钥库
打开tomcat目录conf中的 conf/server.xml
找到如下代码:
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
替换成
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="d:\tomcat.keystore"
keystorePass="123456"/>
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
- 配置tomcat的https访问限制
打开tomcat目录conf中的 conf/web.xml (设置tomcat只能通过https访问)
在最下方添加如下代码
<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://localhost 去访问项目的,默认会跳转到hhttps://localhost ,但是这个跳转的端口是要配置的。
配置在 conf/server.xml ,就是修改下面这段代码的 redirectPort 值
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
其实很简单,就三步,就可以实现https访问项目。如果涉及到一些浏览器证书认证,配置的相关问题,可以自行再找找其他文档看看,其实就是生成一个 xxx.cer 文件,然后放到浏览器的根认证里面就可以了
其他的就不多说了,希望本文章可以快速帮助到您解决相应的问题即可。