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

相关推荐
Pocker_Spades_A1 小时前
Python快速入门专业版(五十四):爬虫基石:HTTP协议全解析(从请求到响应,附Socket模拟请求)
爬虫·python·http
小无名呀3 小时前
socket_udp
linux·网络·c++·网络协议·计算机网络·udp
花阴偷移3 小时前
逆向基础--汇编基础(CS与IP) (05)
网络·汇编·网络协议·tcp/ip
天玺-vains4 小时前
借助Github Action实现通过 HTTP 请求触发邮件通知
网络协议·http·github
ZhengEnCi5 小时前
N2G-为什么90%的人不会计算子网掩码?大厂网络工程师的CIDR与子网掩码完全解析
网络协议
薛之谦_5 小时前
【SSL】什么是自签名证书及使用Java生成SSL自签名证书
java·网络协议·ssl
国服第二切图仔5 小时前
Rust开发实战之使用 Reqwest 实现 HTTP 客户端请求
开发语言·http·rust
捷米研发三部6 小时前
EtherNet/IP转EtherNet/IP协议转换网关实现欧姆龙 PLC与罗克韦尔PLC通讯的配置案例
网络·网络协议
小武~6 小时前
嵌入式网络编程深度优化 --网络协议栈配置实战指南
linux·网络·网络协议
利刃大大6 小时前
【高并发服务器:HTTP应用】十四、Util工具类的设计与实现
服务器·http·高并发·项目·cpp