springboot如何將http轉(zhuǎn)https
springboot http轉(zhuǎn)https
一、安全證書的生成
可以使用jdk自帶的證書生成工具,jdk自帶一個叫keytool的證書管理工具,可以用它來實現(xiàn)簽名的證書。
1、進入cmd命令控制終端
2、生成一個證書
別名:alias = tomcat
密碼:keypass = 123456
生成位置:keystore = D:/keys
keys文件夾需要自己先創(chuàng)建好
cmd命令:
keytool -genkey -alias tomcat -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore D:/keys/tomcat.keystore -storepass 123456
3、獲取tomcat.keystore文件,放入項目根目錄下面

二,配置yml文件
server:
port: 8443
ssl:
key-store: server.keystore
key-alias: tomcat
enabled: true
key-store-type: JKS
key-store-password: 123456
三、springbootApplication啟動類配置
import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class WeijingApplication {
public static void main(String[] args) {
SpringApplication.run(WeijingApplication.class, args);
}
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
@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(redirectConnector());
return tomcat;
}
private Connector redirectConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(8080);
connector.setSecure(false);
connector.setRedirectPort(8443);
return connector;
}
啟動成功
另外:springboot2.xx版本以上可以用上面的方法 如果2.xx以下的 就要換成
EmbeddedServletContainerFactory
import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class WeijingApplication {
public static void main(String[] args) {
SpringApplication.run(WeijingApplication.class, args);
}
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint constraint = new SecurityConstraint();
constraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
constraint.addCollection(collection);
context.addConstraint(constraint);
}
};
tomcat.addAdditionalTomcatConnectors(httpConnector());
return tomcat;
}
@Bean
public Connector httpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
//Connector監(jiān)聽的http的端口號
connector.setPort(8080);
connector.setSecure(false);
//監(jiān)聽到http的端口號后轉(zhuǎn)向到的https的端口號
connector.setRedirectPort(8443);
return connector;
}
另外:報錯端口被占用的話可以看下這個

報錯是因為不能讀取配置文件的端口,那個端口是要被用的
部署到Linux服務(wù)器 https啟動失敗報錯 原因:
部署到服務(wù)器的時候 需要用再linux服務(wù)器上面 重新用Linux的JDK生成證書 (不能用windows生成的證書) 并放再固定的文件夾位置
更改yml文件配置

更改成服務(wù)器文件夾路徑:/usr/local/xxx/server.keystore
到此這篇關(guān)于springboot如何將http轉(zhuǎn)https的文章就介紹到這了,更多相關(guān)springboot http轉(zhuǎn)https內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- springboot如何配置ssl支持https
- SpringBoot配置HTTPS及開發(fā)調(diào)試的操作方法
- springboot實現(xiàn)的https單向認證和雙向認證(java生成證書)
- SpringBoot配置Https訪問的詳細步驟
- SpringBoot配置Https入門實踐
- springboot項目開啟https協(xié)議的項目實現(xiàn)
- SpringBoot的HTTPS配置實現(xiàn)
- springboot配置http跳轉(zhuǎn)https的過程
- springboot支持https請求的實現(xiàn)
- SpringBoot中支持Https協(xié)議的實現(xiàn)
- SpringBoot整合HTTPS的項目實踐
相關(guān)文章
Java+opencv3.2.0實現(xiàn)hough直線檢測
這篇文章主要為大家詳細介紹了Java+opencv3.2.0之hough直線檢測,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-02-02
微信公眾號 網(wǎng)頁授權(quán)登錄及code been used解決詳解
這篇文章主要介紹了微信公眾號 網(wǎng)頁授權(quán)登錄及code been used解決詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-07-07
mybatis返回的map結(jié)果如何設(shè)置有序
這篇文章主要介紹了mybatis返回的map結(jié)果如何設(shè)置有序,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01

