HTTP改HTTPS

tomcat中http协议改https

第一步,配置server.xml

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <GlobalNamingResources>
     <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>
  <Service name="Catalina">
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000"  redirectPort="443" />

   <Connector port="8443" protocol="HTTP/1.1"
		SSLEnabled="true" maxThreads="150" scheme="https" secure="true"
                keystoreFile="/opt/apache-tomcat-9.0.40/conf/*.jks"
                keystorePass="*"
                clientAuth="false" sslProtocol="TLS"
               connectionTimeout="20000"/>
     
      <Engine name="Catalina" defaultHost="localhost">

         <Realm className="org.apache.catalina.realm.LockOutRealm">
              <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

           <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

      </Host>
    </Engine>
  </Service>
</Server>

注意配置tomcat进行http端口向https端口的重定向,也可以使用iptable配置80转发到443。

如果使用非root用户登录,一定注意端口,非root用户不能使用1024一下的端口,所以要配置8443。

iptables配置方法:

在Linux的下脸部署了apache,为了安全我们使用非root用户进行启动,但是在域名绑定时没法直接访问80端口号。尽人皆知,在unix下,非root用户不能监听1024以下的端口号,这个apache服务器就没办法绑定在80端口下。所以这里需要使用linux的端口转发机制,把到80端口的服务要求都转到8080端口上。

在root账户下面运行1下命令:

复制代码
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8081

另外如果防火墙重新启动,该命令就会失效,可使用下面的命令把该规则保存到iptables里面。

复制代码
service iptables save

查看

iptables -nL -t nat

删除

iptables -t nat -D PREROUTING 1

相关推荐
2301_805962931 小时前
ESP32远程OTA升级:从局域网到公网部署
网络·后端·http·esp32
爱吃生蚝的于勒4 小时前
【Linux】网络之http协议
linux·运维·服务器·网络·数据结构·c++·http
程序员大飞哥4 小时前
T-Box双SIM卡的"幻觉":为什么有两张卡却还在断连?
网络协议
吠品4 小时前
UniApp Vue3中实现rem自适应布局:动态基准值与设计稿适配实践
tcp/ip·https·ssl
Sean‘4 小时前
Rancher 日志无法显示?WebSocket 代理配置是罪魁祸首
websocket·网络协议·rancher
树下水月4 小时前
微信小程序接口,必须使用https的443端口吗?
微信小程序·小程序·https
F1FJJ4 小时前
开源实践:用 Go 实现浏览器直连内网 RDP/SSH/VNC
运维·网络·网络协议·网络安全·golang·ssh
23.5 小时前
【分析】HTTP请求端口错误诊断:404、502与连接拒绝的区别
网络·网络协议·http
Bear on Toilet5 小时前
HTTP + JSON 接口调用清单总结
网络协议·http·json
辉视广播对讲5 小时前
私有协议 IP 广播对讲 vs SIP 广播对讲多维度对比分析报告
网络·网络协议·tcp/ip