我使用spring boot(嵌入tomcat)和ssl。
实际上,我需要在网址中输入端口(8443)才能访问网络应用程序。
如何才能使用domnain名称?
喜欢的东西 https://www.bob.com
而不是
修改
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat
= new TomcatEmbeddedServletContainerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
tomcat.addAdditionalTomcatConnectors(createHttpConnector());
return tomcat;
}
private Connector createHttpConnector() {
Connector connector
= new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setSecure(false);
connector.setPort(8080);
connector.setRedirectPort(8443);
return connector;
}
现在不需要输入端口
但如果输入bob.com,浏览器会转换为
bob.com:8443
答案 0 :(得分:4)
浏览器用于HTTP的默认端口为80,HTTPS为443.如果您在443上运行应用程序(因为您使用的是HTTPS),则不必使用端口号,浏览器将自动重新路由您的URL。要更改spring-boot应用程序中的端口号,请在bootstrap.yml中指定server.port
属性。
server:
port: 443
答案 1 :(得分:0)
你的意思是这样吗?
String webPort = System.getenv("PORT");
if(webPort == null || webPort.isEmpty()) {
webPort = "8080";
}