http重定向至https,80端口向443重定向

tomcat 默认端口说明:

<Server port="8005" shutdown="SHUTDOWN"> 远程停服务端口
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> 其中8080为HTTP端口,8443为默认HTTPS端口
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 8009为AJP端口,服务器之间的通信使用该端口

HTTP重定向至HTTPS也就是将80端口重定向至443端口


1. 设置https 访问:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/usr/share/tomcat7/conf/.keystore" keystorePass=" sunyainfo.com"/>
keystoreFile : 证书存放路径
keystorePass : 证书密码

2. 配置80端口,将8080改成80, redirectPort设置为443

<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="443" />

3. 配置8009端口重定向

<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

4. 在 $TOMCAT_HOME/bin/web.xml中加入以下配置,禁止http访问

<security-constraint>
<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>

5.重启tomcat即可

The end

<think>我们遇到一个需求:将HTTP(80端口)的请求重定向HTTPS的8443端口(非默认443端口)。根据用户描述和引用内容,常规重定向443端口的配置不适用,因为目标端口是8443。分析引用:引用[1]展示了常规80重定向443的配置(使用rewrite指令)。引用[2]提供了一个实际案例:将8443端口HTTPS请求重定向443端口(注意这里是反向情况),同时包含80端口重定向443的配置(使用if判断协议)。引用[3]展示了80端口重定向443的标准配置(使用return指令)。目标需求:80端口重定向https://域名:8443配置关键点:1.在80端口的server块中,使用重定向指令(return或rewrite)指定目标URL为https://$host:8443$request_uri。2.注意:由于目标端口是非标准的8443,因此必须在重定向URL中显式指定端口号。配置示例:```nginx#HTTP80端口重定向HTTPS8443端口server{listen80;server_nameyourdomain.com;#替换为实际域名#方法1:使用return指令(推荐,效率更高)return301https://$host:8443$request_uri;#或方法2:使用rewrite指令(与引用[1]类似但端口不同)#rewrite^(.*)$https://$host:8443$1permanent;}#另外,需要有一个监听8443端口HTTPSserver块来处理请求server{listen8443ssl;server_nameyourdomain.com;ssl_certificate/path/to/cert.pem;ssl_certificate_key/path/to/private.key;#...其他SSL配置和业务配置}```注意事项:1.确保在目标HTTPSserver块中正确配置了8443端口的监听(如上述第二个server块)。2.如果服务器防火墙或安全组设置限制了端口访问,请开放8443端口的入站访问。3.由于使用非标准端口,用户访问时必须携带端口号(如https://example.com:8443)。但通过重定向,用户只需输入http://example.com(或直接输入域名)即可自动跳转到https://example.com:8443。验证方法:使用curl命令测试:```bashcurl-Ihttp://yourdomain.com```应返回类似以下响应头,其中Location字段应为https://yourdomain.com:8443/...:```HTTP/1.1301MovedPermanentlyServer:nginxLocation:https://yourdomain.com:8443/requested_uri...```补充说明:如果同时存在需要重定向443端口的其他域名,可以配置多个server块,根据server_name区分。根据引用[2]中的配置,他们使用了不同的策略(将8443重定向443,而80重定向443)。但我们的需求正好相反(80重定向到8443),因此配置方向不同。引用参考:[1]使用rewrite指令实现80重定向443(无端口号,默认443)[^1][2]展示了在非标准端口(8443)上监听HTTPS重定向到标准端口443)的配置,以及80重定向443的配置[^2][3]使用return指令实现80重定向443(标准方式)[^3]因此,我们调整重定向的目标URL,显式加入:8443端口即可满足需求。</think>### 配置Nginx将80端口重定向HTTPS 8443端口 根据您的需求,需要将HTTP(80端口)重定向HTTPS的**8443端口**(非默认443端口)。以下是完整解决方案: #### 📝 配置示例(nginx.conf) ```nginx # HTTP 80端口重定向HTTPS 8443端口 server { listen 80; server_name yourdomain.com; # 替换为您的域名 # 关键点:显式指定8443端口 return 301 https://$host:8443$request_uri; } # HTTPS 8443端口服务配置 server { listen 8443 ssl; # 监听8443端口 server_name yourdomain.com; ssl_certificate /path/to/fullchain.pem; # SSL证书路径 ssl_certificate_key /path/to/privkey.pem; # 私钥路径 # 其他SSL配置 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; # ... 您的业务配置 } ``` #### 🔧 关键配置说明 1. **显式指定目标端口** ```nginx return 301 https://$host:8443$request_uri; ``` - `:8443` 明确指定重定向目标端口 - `$host` 变量自动获取请求域名 - `$request_uri` 保留原始请求路径和参数 2. **8443端口监听配置** ```nginx listen 8443 ssl; ``` - 必须确保Nginx监听8443端口HTTPS请求 - 需要有效的SSL证书配置 3. **301永久重定向** 使用`301`状态码有利于SEO和浏览器缓存优化 #### ⚙️ 验证与测试步骤 1. **检查配置语法** ```bash nginx -t ``` 2. **重载Nginx配置** ```bash systemctl reload nginx ``` 3. **测试重定向效果** ```bash curl -I http://yourdomain.com ``` 应返回类似响应: ``` HTTP/1.1 301 Moved Permanently Location: https://yourdomain.com:8443/path ``` #### ⚠️ 注意事项 1. **防火墙设置** 确保服务器防火墙开放8443端口: ```bash ufw allow 8443/tcp ``` 2. **证书有效性** 确认SSL证书包含目标域名,且未过期 3. **浏览器缓存问题** 测试时使用隐身模式或清除缓存 4. **多域名处理** 若需支持多个域名: ```nginx server { listen 80; server_name domain1.com domain2.com; return 301 https://$host:8443$request_uri; } ``` #### 💡 技术原理 当用户访问 `http://domain.com` 时: 1. 80端口的server块捕获请求 2. 返回301重定向响应头:`Location: https://domain.com:8443/path` 3. 浏览器自动向 `https://domain.com:8443` 发起新请求 4. 8443端口的server块处理HTTPS请求 > 配置参考: [^2] --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值