最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot如何配置ssl支持https

 更新時間:2024年10月16日 17:04:55   作者:GKFreewind  
在SpringBoot應用中配置SSL支持HTTPS需要創(chuàng)建KeyStore并在application.yml中進行相應配置,首先,使用java的keytool工具創(chuàng)建KeyStore,這涉及到設(shè)置密鑰對、指定密鑰算法(RSA)、密鑰大小(2048位)、密鑰庫名稱、證書有效期等,創(chuàng)建KeyStore后

springboot 配置ssl支持https

以下信息請根據(jù)實際情況修改?。?!

創(chuàng)建keystore

KeyStore是一個用于存儲和管理加密密鑰和證書的存儲庫。

它通常被用于各種應用和系統(tǒng)中,以保護敏感數(shù)據(jù)和確保安全通信。

KeyStore可以被看作是一種加密的“保險箱”,用于存放密鑰、密鑰對和證書等安全相關(guān)的數(shù)據(jù)。

通過java的keytool創(chuàng)建keyStore

keytool -genkeypair -alias mykey -keyalg RSA -keysize 2048 -keystore keystore.jks -validity 365 -storepass mypassword -keypass mypassword -dname "CN=localhost, OU=MyOrg, O=MyOrg, L=MyCity, ST=MyState, C=MyCountry"

解釋各個參數(shù):

  • -genkeypair:生成密鑰對(公鑰和私鑰)。
  • -alias mykey:指定密鑰的別名(在密鑰庫中引用密鑰時使用)。
  • -keyalg RSA:指定密鑰算法(這里是 RSA)。
  • -keysize 2048:指定密鑰大小(位)。
  • -keystore keystore.jks:指定密鑰庫文件的名稱(如果文件不存在,則創(chuàng)建它)。
  • -validity 365:指定證書的有效期(天)。
  • -storepass mypassword:指定密鑰庫的存儲密碼。
  • -keypass mypassword:指定密鑰的密碼(如果與密鑰庫密碼相同,可以省略)。
  • -dname:指定證書的主題信息(DN,Distinguished Name),包括通用名稱(CN)、組織單位(OU)、組織(O)、城市(L)、州/?。⊿T)和國家(C)。

在springboot的application.yml配置文件中配置相關(guān)內(nèi)容

server:  
  port: 8443 # HTTPS的默認端口是443,但443端口通常需要管理員權(quán)限才能綁定  
  ssl:  
    key-store: classpath:keystore.jks # 密鑰庫的位置,相對于classpath  對應keytool生成時的-keystore
    key-store-type: JKS # 密鑰庫類型,默認為JKS  
    key-store-password: mypassword # 密鑰庫密碼  對應keytool生成時的-storepass
    key-alias: mykey # 密鑰別名  對應keytool生成時的-alias
    key-password: mypassword # 密鑰別名  對應keytool生成時的-keypass
    # 如果你使用的是PKCS12密鑰庫,則需要如下配置,相應信息根據(jù)實際情況修改
    # key-store-type: PKCS12  
    # key-store: classpath:keystore.p12  
    # key-store-password: yourpassword  
    # 如果需要,還可以配置信任庫  
    # trust-store: classpath:truststore.jks  
    # trust-store-password: trustpassword  
    # trust-store-type: JKS  
    # 啟用SSL客戶端認證(可選)  
    # client-auth: need

springboot應用支持https實現(xiàn)

jdk自帶證書生成

切換到j(luò)dk目錄下bin目錄,執(zhí)行

  • keytool -genkey -alias (別名)
  • -dname "CN=(姓名),OU=(組織單位名稱),O=(組織名稱),L=(城市名稱),ST=(省),C=(國家)"
  • -storetype (密鑰倉庫類型)
  • -keyalg (生證書的算法名稱) -keysize (密鑰長度,證書大小)
  • -keystore (指定生成證書的位置和證書名稱)
  • -validity (證書有效期,天單位)

列:

keytool -genkey -alias lyc -dname "CN=l,OU=SC,O=yd,L=lc,ST=sc,C=CN" -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 365

配置https協(xié)議

springboot+tomcat,增加代碼configuration配置項如下:

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.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class TomcatHttpsConfig {

    @Bean
    public Connector connector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setSecure(false);
        connector.setPort(80);
        connector.setRedirectPort(443);
        return connector;
    }

    @Bean
    public TomcatServletWebServerFactory tomcatServletWebServerFactory(Connector connector) {
        TomcatServletWebServerFactory webServerFactory = new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection securityCollection = new SecurityCollection();
                securityCollection.addPattern("/*");
                securityConstraint.addCollection(securityCollection);
                context.addConstraint(securityConstraint);
            }
        };
        webServerFactory.addAdditionalTomcatConnectors(connector);
        return webServerFactory;
    }

}

springboot+undertow,增加代碼configuration配置項如下:

import io.undertow.Undertow;
import io.undertow.UndertowOptions;
import io.undertow.servlet.api.SecurityConstraint;
import io.undertow.servlet.api.SecurityInfo;
import io.undertow.servlet.api.TransportGuaranteeType;
import io.undertow.servlet.api.WebResourceCollection;
import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;

public class UndertowHttpsConfig {
    private int httpPort = 80;
    private int httpsPort = 443;

    @Bean
    public ServletWebServerFactory undertowFactory() {
        UndertowServletWebServerFactory undertowFactory = new UndertowServletWebServerFactory();
        undertowFactory.addBuilderCustomizers((Undertow.Builder builder) -> {
            builder.addHttpListener(httpPort, "0.0.0.0");
            // 開啟HTTP2
            builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true);
        });
        undertowFactory.addDeploymentInfoCustomizers(deploymentInfo -> {
            // 開啟HTTP自動跳轉(zhuǎn)至HTTPS
            deploymentInfo.addSecurityConstraint(new SecurityConstraint()
                    .addWebResourceCollection(new WebResourceCollection().addUrlPattern("/*"))
                    .setTransportGuaranteeType(TransportGuaranteeType.CONFIDENTIAL)
                    .setEmptyRoleSemantic(SecurityInfo.EmptyRoleSemantic.PERMIT))
                    .setConfidentialPortManager(exchange -> httpsPort);
        });
        return undertowFactory;
    }
}

完成以上配置之后,啟動項目

訪問:https://localhost:443/test/test實現(xiàn)springboot的https協(xié)議訪問

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring項目中Ordered接口的應用之全局過濾器(GlobalFilter)的順序控制

    Spring項目中Ordered接口的應用之全局過濾器(GlobalFilter)的順序控制

    在Spring框架,尤其是Spring Cloud Gateway或Spring WebFlux項目中,Ordered接口扮演著重要的角色,特別是在實現(xiàn)全局過濾器(GlobalFilter)時,用于控制過濾器執(zhí)行的優(yōu)先級,下面將介紹如何在Spring項目中使用Ordered接口來管理Global Filter的執(zhí)行順序,需要的朋友可以參考下
    2024-06-06
  • 兩萬字詳解Java Sring String的常見操作以及StringBuffer StringBuilder的區(qū)別

    兩萬字詳解Java Sring String的常見操作以及StringBuffer StringBuilder的區(qū)別

    本篇文章帶你認識Sring、String的常見操作和StringBuffer 與StringBuilder的區(qū)別(字符串詳解),對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Spring boot按日切分spring boot的nohup.out日志文件的方法

    Spring boot按日切分spring boot的nohup.out日志文件的方法

    過大的日志文件維護起來存在諸多問題,所以最好是能夠按日或按大小切分日志文件,下面小編給大家?guī)砹薙pring boot按日切分spring boot的nohup.out日志文件的方法,一起看看吧
    2018-08-08
  • Java裝飾者模式的示例詳解

    Java裝飾者模式的示例詳解

    裝飾者模式:在不改變原有對象的基礎(chǔ)之上,動態(tài)的將功能附加到對象上,提供了繼承更有彈性的替代方案,也體現(xiàn)了開閉原則。本文將通過示例詳細講解一下裝飾者模式,需要的可以參考一下
    2022-02-02
  • Java toArray() 方法 的使用

    Java toArray() 方法 的使用

    toArray()是 Java 集合框架中定義在接口里的一個方法,用于將集合轉(zhuǎn)換為數(shù)組,本文就來介紹一下Java toArray()方法的使用小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-12-12
  • SpringBoot使用CommandLineRunner和ApplicationRunner執(zhí)行初始化業(yè)務(wù)方式

    SpringBoot使用CommandLineRunner和ApplicationRunner執(zhí)行初始化業(yè)務(wù)方式

    這篇文章主要介紹了SpringBoot使用CommandLineRunner和ApplicationRunner執(zhí)行初始化業(yè)務(wù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 一文搞懂Java中的線程安全與線程同步

    一文搞懂Java中的線程安全與線程同步

    線程安全指在被多個線程訪問時,程序可以持續(xù)進行正確的處理。線程同步是指程序中用于控制不同線程間操作發(fā)生相對順序的機制。本文將通過示例詳細為大家講講二者的使用,需要的可以參考一下
    2022-06-06
  • java操作mongodb之多表聯(lián)查的實現(xiàn)($lookup)

    java操作mongodb之多表聯(lián)查的實現(xiàn)($lookup)

    這篇文章主要介紹了java操作mongodb之多表聯(lián)查的實現(xiàn)($lookup),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Springboot無法注入service問題

    Springboot無法注入service問題

    這篇文章主要介紹了Springboot無法注入service的問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Hibernate中獲取Session的兩種方式代碼示例

    Hibernate中獲取Session的兩種方式代碼示例

    這篇文章主要介紹了Hibernate中獲取Session的兩種方式代碼示例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12

最新評論

区。| 景洪市| 根河市| 章丘市| 且末县| 裕民县| 吐鲁番市| 乳源| 灵石县| 泾川县| 永福县| 林州市| 梨树县| 讷河市| 林西县| 乃东县| 栖霞市| 应用必备| 谢通门县| 黄平县| 长春市| 喜德县| 嫩江县| 临漳县| 湘乡市| 云林县| 新田县| 松桃| 项城市| 宝应县| 夏河县| 沂源县| 崇信县| 忻州市| 河源市| 佛教| 苍南县| 罗山县| 丹巴县| 尼勒克县| 阿拉善右旗|