有一个公司内部管理系统,为了办公方便允许外网用域名访问,域名和服务器均已备案。
因为别人把一个未备案的域名绑定到服务器ip,导致备案被删,80端口被封。
请问怎么设置tomcat才能实现让系统只能内网和外网固定域名访问???
当前使用的是tomcat6
有一个公司内部管理系统,为了办公方便允许外网用域名访问,域名和服务器均已备案。
因为别人把一个未备案的域名绑定到服务器ip,导致备案被删,80端口被封。
请问怎么设置tomcat才能实现让系统只能内网和外网固定域名访问???
当前使用的是tomcat6
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
要限制Tomcat仅接受特定的IP地址或域名来连接,您可以使用Apache Tomcat的安全功能。以下是如何通过修改配置文件(通常在conf/server.xml中)来实现这一目标:
在<Connector>标签中添加一个新的属性<ConnectorPort>, 例如<ConnectorPort>8443</ConnectorPort>,这将指定您希望监听的端口号。
将<Connector port="8443" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />替换为<Connector port="8443" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" acceptCount="5" maxThreads="5" />
添加新的<Host>标签,并将其值设置为您想要允许访问的主机名。例如:
<Host name="example.com"/>
<Connector port="8443" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" acceptCount="5" maxThreads="5" />替换为:<Connector port="8443" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" host="example.com" acceptCount="5" maxThreads="5" />
<Connector>标签中的<Host>属性,以包含您的特定主机名,如下所示:<Connector port="8443" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" host="example.com" acceptCount="5" maxThreads="5" />
<Context>标签中,添加<Filter>元素,用于处理跨域请求。在<Filter>标签中添加以下过滤器规则:<Filter>
<FilterName>CrossOriginFilter</FilterName>
<InitParameter Name="crossorigin.allowOrigins" Value="*"/>
<InitParameter Name="crossorigin.allowCredentials" Value="true"/>
<InitParameter Name="crossorigin.allowedHeaders" Value="Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers, Origin, Accept, Content-Type, Authorization"/>
<FilterDescription>Allow CORS requests for this application.</FilterDescription>
</Filter>
<FilterChain>
<FilterChain name="crosstalk">
<Filter ref="CrossOriginFilter"/>
</FilterChain>
</FilterChain>
<Server>标签中添加以下配置项:<Host name="localhost" description="Internal Host">
<!-- 其他配置... -->
</Host>
<Host name="example.com" description="External Host">
<!-- 其他配置... -->
</Host>
现在,当客户端尝试访问外部主机时,Tomcat会阻止访问,并显示错误消息“Invalid request”. 对于内网访问,Tomcat会正常工作并允许请求。
请注意,此方法可能不会完全防止所有未经授权的请求,但应能有效减少未经授权的请求。对于更严格的安全控制,请考虑使用其他技术,如SSL/TLS加密或其他认证机制。