如何在 Java spring 启动时打开端口 80 (HTTP) 和 433 (HTTPS)?
How to open port 80 (HTTP) and 433 (HTTPS) in Java spring boot?
我想为 http 打开 80 端口,为 https 打开 433 端口。 80端口应该重定向到433,我把application.properties
中的服务器端口设置为80端口:
server.port=80
为了重定向,我按照官方 spring 文档创建了这个小 class:
public class HTTPSRedirector {
@Bean
SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
http.redirectToHttps();
return http.build();
}
}
但是现在服务器超时,当我尝试通过以下命令使用 curl 时:
curl -v http://www.example.com/
我收到 Bad request
响应,因为 SSL/TLS 已启用。如果我尝试像这样 ping / 联系 https 端口:
curl -v https://www.example.com/
然后我收到端口未打开且连接被拒绝的消息。如何在我的 Java spring 项目中同时打开端口 80 和 433?
这就是我最终修复它的方式:
我使用了问题中列出的 bean。此 bean 将所有 http 请求重定向到 https。
此外,我将服务器端口设置为:
server.port=443
这是 https
的默认端口。通过这两项更改,服务器工作正常,一切都是 https。
我想为 http 打开 80 端口,为 https 打开 433 端口。 80端口应该重定向到433,我把application.properties
中的服务器端口设置为80端口:
server.port=80
为了重定向,我按照官方 spring 文档创建了这个小 class:
public class HTTPSRedirector {
@Bean
SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
http.redirectToHttps();
return http.build();
}
}
但是现在服务器超时,当我尝试通过以下命令使用 curl 时:
curl -v http://www.example.com/
我收到 Bad request
响应,因为 SSL/TLS 已启用。如果我尝试像这样 ping / 联系 https 端口:
curl -v https://www.example.com/
然后我收到端口未打开且连接被拒绝的消息。如何在我的 Java spring 项目中同时打开端口 80 和 433?
这就是我最终修复它的方式:
我使用了问题中列出的 bean。此 bean 将所有 http 请求重定向到 https。
此外,我将服务器端口设置为:
server.port=443
这是 https
的默认端口。通过这两项更改,服务器工作正常,一切都是 https。