关于tomcat下设置HTTP访问和HTTPS访问的注意点
来源:互联网 发布:苹果电脑怎么编译c语言 编辑:程序博客网 时间:2024/05/16 07:52
本文提到的tomcat版本为8.5。
文中如果错误之处,欢迎指正。
tomcat默认使用8080端口的HTTP协议访问服务器上的项目,可以直接访问conf文件夹下的server.xml文件查询相关设置,如果只是查询的话,建议直接用浏览器打开,结构清晰明显,如果想要修改的话,建议用文本编辑器打开。
默认8080端口设置如下:
<Connector port="8080" redirectPort="8443" connectionTimeout="20000" protocol="HTTP/1.1"/>
这里的redirectPort声明重定向端口,在网上查阅相关资料得知8443端口是tomcat打开SSL的文本服务的默认端口,即用于HTTPS访问的端口,但是在默认设置下,server.xml里并没有8443端口相关的设置,顶多能看到被注释掉的示例设置:
示例1:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="conf/localhost-rsa.jks" type="RSA" /> </SSLHostConfig> </Connector>
示例2:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol" maxThreads="150" SSLEnabled="true" > <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" /> <SSLHostConfig> <Certificate certificateKeyFile="conf/localhost-rsa-key.pem" certificateFile="conf/localhost-rsa-cert.pem" certificateChainFile="conf/localhost-rsa-chain.pem" type="RSA" /> </SSLHostConfig> </Connector>
Certificate是与SSL证书相关的配置,本人使用的tomcat并没有自带上述示例中配置的证书文件。
相关访问设置的问题不是本文的重点,网上多得是,所以就不描述了,下面来说一下设置的注意点。
1.
如果只需要HTTP访问,只用修改conf文件夹下的server.xml即可,一般来说就两个地方需要设置,一个是访问端口(<Connector>),一个则是访问域名(<Host>),具体就不赘述了。
2.
如果需要HTTPS访问,按以下方式进行设置:
1)
添加用于HTTPS访问的端口,https默认访问端口是443,所以基本上按以下设置即可,keystoreFile填写的是SSL证书的路径,一般将获取的SSL证书存放在conf文件夹下即可:
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="conf/xxx.jks" keystorePass="si80392afmcwu9" clientAuth="false" sslProtocol="TLS" />
2)
在HTTP访问设置中加上重定向端口(redirectPort),并设置为HTTPS访问的端口,当你想访问网站无需输入端口号时,只需将访问端口设置为80即可,如下:
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443"/>
3)
这一步是HTTPS设置比较重要的地方,需要考虑到网站是需要同时兼容HTTP和HTTPS访问还是全都强制转为HTTPS访问,这里就需要设置conf文件夹下的web.xml了:
<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>
CLIENT-CERT认证一种基于客户端证书的认证方式,比较安全。但缺陷是在没有安全证书的客户端无法使用。
security-constraint元素是一种计算机函数,允许不通过编程就可以限制对某个资源的访问,在大多数情况下,安全套接字层(SSL)用于INTEGRAL或CONFIDENTIAL,标识需要限制访问的资源子集。
web-resource-collection元素标识需要限制访问的资源子集。在web-resource-collection元素中,可以定义URL模式和HTTP方法。如果不存在HTTP方法,就将安全约束应用于所有的方法。
web-resource-name是与受保护资源相关联的名称。http-method元素可被赋予一个HTTP方法,比如GET和POST。
url-pattern是将安全约束用在设定的匹配URL上。
auth-constraint元素用于指定可以访问该资源集合的用户角色。如果没有指定auth-constraint元素,就将安全约束应用于所有角色。
user-data-constraint元素用来显示怎样保护在客户端和Web容器之间传递的数据。
transport-guarantee元素必须具有如下的某个值:
- NONE,这意味着应用不需要传输保证。
- INTEGRAL,意味着服务器和客户端之间的数据必须以某种方式发送,而且在传送中不能改变。
- CONFIDENTIAL,这意味着传输的数据必须是加密的数据。
一般来说,如果需要同时兼容HTTP与HTTPS访问的话,在web.xml里不设置以上内容即可,但是如果需要强制转换的话,按上面的示例设置即可。
1. Tomcat提供的安全机制:http://blog.csdn.net/doupei2006/article/details/11602247
2.web.xml中<security-constraint>和四种认证类型:http://blog.csdn.net/lisheng19870305/article/details/40819481
3.security-constraint元素:http://www.baike.com/wiki/security-constraint%E5%85%83%E7%B4%A0
阅读全文
0 0
- 关于tomcat下设置HTTP访问和HTTPS访问的注意点
- 设置Tomcat的https访问
- tomcat https访问设置
- tomcat https访问设置
- tomcat https访问设置
- Tomcat Https访问设置
- tomcat https访问设置
- tomcat https访问设置
- tomcat https访问设置
- tomcat https访问设置
- tomcat https访问设置
- Tomcat设置https访问
- tomcat同时支持http和https访问
- tomcat同时使用http和https访问的配置方法
- tomcat设置https访问(http自动跳转到https)
- tomcat设置https访问(http自动跳转到https)
- tomcat设置https,且http自动跳转为https访问
- tomcat设置http自动跳转为https访问
- 8月9日云栖精选夜读:大数据时代_如何构建国家地质基础数据更新体系
- Maven install报MojoFailureException
- [P2658]汽车拉力比赛
- Docker 安装
- jQuery动态向上滚动
- 关于tomcat下设置HTTP访问和HTTPS访问的注意点
- 地震当晚_淘宝店主突然收到陌生留言:“请给我报个平安”
- java日志操作
- 浅谈java的运行过程
- 获取SHA1值
- margin负值的妙用
- Vuforia虚拟按钮
- 聊聊后端服务监控
- Springmvc访问静态文件(图片)