gpt4 book ai didi

spring - 如何在 Spring Boot 中从 http 重定向到 https?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:23:01 33 4
gpt4 key购买 nike

我的网站使用 https 协议(protocol)。当我执行提交表单之类的操作时,它会重定向到 http,而不是 https。我是这样用的。

@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.setPort(8080);
connector.setSecure(false);
connector.setRedirectPort(8443);
return connector;
}

但是在构建“地址已在使用:绑定(bind)”时显示错误。你能帮我解决这个问题吗?

最佳答案

你必须终止那个特定端口的进程

在窗口中

netstat -ano

会列出所有监听的协议(protocol)、端口和进程。使用

taskkill -pid "proces to kill" /f

杀掉监听端口的进程。例如

 taskkill -pid 431 /f

在 Linux 中

如果您知道该进程正在运行的端口,您可以键入:lsof -i:<port> .

例如,lsof -i:8080 , 列出在端口 8080 上运行的进程 (pid)。

然后用kill <pid>终止进程.

如果在运行上述步骤后它不起作用而不是验证您的步骤

要在 Spring Boot 中启用 HTTPS,请遵循以下三个步骤。

第 1 步。为自己获取 SSL 证书:生成自签名证书或从证书颁发机构获取证书

第 2 步。在 Spring Boot 中启用 HTTPS。

  • 在 application.properties 文件中添加以下配置源/主要/资源

    server.port: 8443
    server.ssl.key-store: <keystore> (e.g.keystore.p12)
    server.ssl.key-store-password: <key-store-password> (e.g.mypassword)
    server.ssl.keyStoreType: <keyStoreType>(e.g.PKCS12)
    server.ssl.keyAlias: tomcat

步骤 3.将 HTTP 重定向到 HTTPS(您已经完成)

有关详细信息,请参阅 Enable HTTPS in Spring Boot

关于spring - 如何在 Spring Boot 中从 http 重定向到 https?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50853812/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com