我有与this question相同的问题,但在EC2上下文中没有,只是从命令行启动我的spring启动应用程序。我设法通过遵循this example:
中的代码,使用HTTPS运行我的应用程序@Profile( "security" )
@Configuration
public class SecurityConfiguration
{
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer( @Value("${keystore.file}") Resource keystoreFile,
@Value("${keystore.pass}") final String keystorePass ) throws IOException
{
final String absoluteKeystoreFile = keystoreFile.getFile().getAbsolutePath();
return new EmbeddedServletContainerCustomizer()
{
@Override
public void customize( ConfigurableEmbeddedServletContainer container )
{
TomcatEmbeddedServletContainerFactory tomcat = (TomcatEmbeddedServletContainerFactory)container;
tomcat.addConnectorCustomizers( new TomcatConnectorCustomizer()
{
@Override
public void customize( Connector connector )
{
connector.setPort( 8443 );
connector.setSecure( true );
connector.setScheme( "https" );
Http11NioProtocol proto = (Http11NioProtocol)connector.getProtocolHandler();
proto.setSSLEnabled( true );
proto.setKeystoreFile( absoluteKeystoreFile );
proto.setKeystorePass( keystorePass );
proto.setKeystoreType( "PKCS12" );
proto.setKeyAlias( "tomcat" );
}
} );
}
};
}
}
现在我可以在https://localhost:8443/
上访问我的应用程序了。
我希望http://localhost:8443
重定向到https。现在Chrome只显示:"没有收到数据"这不是非常用户友好。
答案 0 :(得分:0)
AFAIK你不能这样做:如果Tomcat在端口8443上监听HTTPS,它就无法在同一端口上侦听HTTP。您链接的另一个问题是不同的,因为它不是关于特定端口。