springboot如何將http轉(zhuǎn)https
springboot http轉(zhuǎn)https
一、安全證書(shū)的生成
可以使用jdk自帶的證書(shū)生成工具,jdk自帶一個(gè)叫keytool的證書(shū)管理工具,可以用它來(lái)實(shí)現(xiàn)簽名的證書(shū)。
1、進(jìn)入cmd命令控制終端
2、生成一個(gè)證書(shū)
別名: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文件,放入項(xiàng)目根目錄下面

二,配置yml文件
server:
port: 8443
ssl:
key-store: server.keystore
key-alias: tomcat
enabled: true
key-store-type: JKS
key-store-password: 123456
三、springbootApplication啟動(dòng)類配置
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;
}
啟動(dòng)成功
另外: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)聽(tīng)的http的端口號(hào)
connector.setPort(8080);
connector.setSecure(false);
//監(jiān)聽(tīng)到http的端口號(hào)后轉(zhuǎn)向到的https的端口號(hào)
connector.setRedirectPort(8443);
return connector;
}
另外:報(bào)錯(cuò)端口被占用的話可以看下這個(gè)

報(bào)錯(cuò)是因?yàn)椴荒茏x取配置文件的端口,那個(gè)端口是要被用的
部署到Linux服務(wù)器 https啟動(dòng)失敗報(bào)錯(cuò) 原因:
部署到服務(wù)器的時(shí)候 需要用再linux服務(wù)器上面 重新用Linux的JDK生成證書(shū) (不能用windows生成的證書(shū)) 并放再固定的文件夾位置
更改yml文件配置

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

