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

SpringBoot對(duì)SSL的支持實(shí)現(xiàn)

 更新時(shí)間:2024年08月22日 09:49:04   作者:聽(tīng)海邊濤聲  
本文主要介紹了SpringBoot對(duì)SSL的支持實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

Spring Boot 提供了配置 SSL 信任材料的能力,這些材料可以應(yīng)用于多種類型的連接,以支持安全通信??梢允褂靡?nbsp;spring.ssl.bundle 為前綴的配置屬性來(lái)指定命名的信任材料集和相關(guān)信息。

https://docs.spring.io/spring-boot/docs/3.2.0/reference/htmlsingle/#features.ssl

使用 Java KeyStore 文件配置 SSL

可以使用以 spring.ssl.bundle.jks 為前綴的配置屬性來(lái)配置使用 Java keytool 實(shí)用程序創(chuàng)建的信任材料包,并將這些包存儲(chǔ)在 JKS 或 PKCS12 格式的 Java KeyStore 文件中。每個(gè)包都有一個(gè)用戶提供的名稱,可用于引用該包。

當(dāng)用于保護(hù)嵌入式 Web 服務(wù)器時(shí),通常會(huì)將keystore 配置為包含證書和私鑰的 Java KeyStore,如下所示:

spring.ssl.bundle.jks.mybundle.key.alias=application
spring.ssl.bundle.jks.mybundle.keystore.location=classpath:application.p12
spring.ssl.bundle.jks.mybundle.keystore.password=secret
spring.ssl.bundle.jks.mybundle.keystore.type=PKCS12

當(dāng)用于保護(hù)客戶端連接時(shí),通常會(huì)將truststore 配置為包含服務(wù)器證書的 Java KeyStore,如下所示:

spring.ssl.bundle.jks.mybundle.truststore.location=classpath:server.p12
spring.ssl.bundle.jks.mybundle.truststore.password=secret

使用 PEM 編碼的證書配置 SSL

可以使用以 spring.ssl.bundle.pem 為前綴的配置屬性來(lái)配置以 PEM 編碼文本形式存在的信任材料包。每個(gè)包都有一個(gè)用戶提供的名稱,可用于引用該包。

當(dāng)用于保護(hù)嵌入式 Web 服務(wù)器時(shí),通常會(huì)將keystore 配置為包含證書和私鑰,如下所示:

spring.ssl.bundle.pem.mybundle.keystore.certificate=classpath:application.crt
spring.ssl.bundle.pem.mybundle.keystore.private-key=classpath:application.key

當(dāng)用于保護(hù)客戶端連接時(shí),通常會(huì)將truststore 配置為包含服務(wù)器證書,如下所示:

spring.ssl.bundle.pem.mybundle.truststore.certificate=classpath:server.crt

提示certificate 和private-key屬性可以直接使用 PEM 內(nèi)容。如果屬性值包含 BEGIN 和 END 標(biāo)記,則它們將被視為 PEM 內(nèi)容,而不是資源位置。

以下示例演示了如何定義信任庫(kù)證書:

spring.ssl.bundle.pem.mybundle.truststore.certificate=\
-----BEGIN CERTIFICATE-----\n\
MIID1zCCAr+gAwIBAgIUNM5QQv8IzVQsgSmmdPQNaqyzWs4wDQYJKoZIhvcNAQEL\n\
BQAwezELMAkGA1UEBhMCWFgxEjAQBgNVBAgMCVN0YXRlTmFtZTERMA8GA1UEBwwI\n\
...\n\
V0IJjcmYjEZbTvpjFKznvaFiOUv+8L7jHQ1/Yf+9c3C8gSjdUfv88m17pqYXd+Ds\n\
HEmfmNNjht130UyjNCITmLVXyy5p35vWmdf95U3uEbJSnNVtXH8qRmN9oK9mUpDb\n\
ngX6JBJI7fw7tXoqWSLHNiBODM88fUlQSho8\n\
-----END CERTIFICATE-----\n

應(yīng)用 SSL 包(Applying SSL Bundles)

一旦使用屬性進(jìn)行配置,就可以在由 Spring Boot 自動(dòng)配置的各種類型連接的配置屬性中通過(guò)名稱引用 SSL 包。

使用 SSL 包(Using SSL Bundles)

Spring Boot 會(huì)自動(dòng)配置一個(gè) SslBundles 類型的 bean,該 bean 可提供對(duì)使用 spring.ssl.bundle 屬性配置的每個(gè)命名包的訪問(wèn)。

可以從自動(dòng)配置的 SslBundles bean 中檢索 SslBundle,并使用它來(lái)創(chuàng)建用于在客戶端庫(kù)中配置 SSL 連接的對(duì)象。SslBundle 提供了一種分層的方法來(lái)獲取這些 SSL 對(duì)象:

  • getStores() 可用于訪問(wèn)密鑰庫(kù)和信任庫(kù)的 java.security.KeyStore 實(shí)例,以及任何所需的密鑰庫(kù)密碼。
  • getManagers() 可用于訪問(wèn) java.net.ssl.KeyManagerFactory 和java.net.ssl.TrustManagerFactory 實(shí)例,以及它們創(chuàng)建的java.net.ssl.KeyManager 和java.net.ssl.TrustManager 數(shù)組。
  • createSslContext() 提供了一種便捷的方式來(lái)獲取新的 java.net.ssl.SSLContext 實(shí)例。

此外,SslBundle 還提供了有關(guān)正在使用的密鑰、要使用的協(xié)議以及應(yīng)應(yīng)用于 SSL 引擎的任何選項(xiàng)的詳細(xì)信息。

以下示例演示了如何檢索 SslBundle 并使用它來(lái)創(chuàng)建 SSLContext

import javax.net.ssl.SSLContext;

import org.springframework.boot.ssl.SslBundle;
import org.springframework.boot.ssl.SslBundles;
import org.springframework.stereotype.Component;

@Component
public class MyComponent {

    public MyComponent(SslBundles sslBundles) {
        SslBundle sslBundle = sslBundles.getBundle("mybundle");
        SSLContext sslContext = sslBundle.createSslContext();
        // do something with the created sslContext
    }

}

重新加載 SSL 包(Reloading SSL bundles)

當(dāng)密鑰材料發(fā)生更改時(shí),可以重新加載 SSL 包。使用包的組件必須與可重新加載的 SSL 包兼容。目前,以下組件與此兼容:

  • Tomcat Web 服務(wù)器
  • Netty Web 服務(wù)器

要啟用重新加載,你需要通過(guò)以下示例中的配置屬性進(jìn)行選擇:

spring.ssl.bundle.pem.mybundle.reload-on-update=true
spring.ssl.bundle.pem.mybundle.keystore.certificate=file:/some/directory/application.crt
spring.ssl.bundle.pem.mybundle.keystore.private-key=file:/some/directory/application.key

然后,文件監(jiān)視器將監(jiān)視這些文件,如果文件發(fā)生更改,將重新加載 SSL 包。這反過(guò)來(lái)會(huì)觸發(fā)使用組件的重新加載,例如,Tomcat 將對(duì)啟用 SSL 的連接器中的證書進(jìn)行輪換。

你可以使用 spring.ssl.bundle.watch.file.quiet-period 屬性來(lái)配置文件監(jiān)視器的靜默期(以確保沒(méi)有更多更改)。

到此這篇關(guān)于SpringBoot對(duì)SSL的支持實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)SpringBoot SSL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文搞懂Java的SPI機(jī)制(推薦)

    一文搞懂Java的SPI機(jī)制(推薦)

    Java定義了一套JDBC的接口,但并未提供具體實(shí)現(xiàn)類,而是在不同云廠商提供的數(shù)據(jù)庫(kù)實(shí)現(xiàn)包。這篇文章給大家介紹Java的SPI機(jī)制,感興趣的朋友一起看看吧
    2021-11-11
  • Java中EnumSet代替位域代碼詳解

    Java中EnumSet代替位域代碼詳解

    這篇文章主要介紹了Java中EnumSet代替位域代碼詳解,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • java17日期周期格式化處理方案

    java17日期周期格式化處理方案

    Java17引入了新的日期時(shí)間格式化模式B,用于表示一天中的時(shí)間段,如上午、下午、晚上等,該模式根據(jù)CLDR定義,在不同語(yǔ)言環(huán)境下,該模式的輸出結(jié)果會(huì)有所不同,本文給大家介紹java17日期周期格式化處理方案,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • 從0到1構(gòu)建springboot web應(yīng)用鏡像并使用容器部署的過(guò)程

    從0到1構(gòu)建springboot web應(yīng)用鏡像并使用容器部署的過(guò)程

    這篇文章主要介紹了從0到1構(gòu)建springboot web應(yīng)用鏡像并使用容器部署,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • springboot 多數(shù)據(jù)源的實(shí)現(xiàn)(最簡(jiǎn)單的整合方式)

    springboot 多數(shù)據(jù)源的實(shí)現(xiàn)(最簡(jiǎn)單的整合方式)

    這篇文章主要介紹了springboot 多數(shù)據(jù)源的實(shí)現(xiàn)(最簡(jiǎn)單的整合方式),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • java枚舉類型-Enum

    java枚舉類型-Enum

    本文詳細(xì)介紹了 Java1.5 引入的新特性枚舉中的關(guān)鍵字enum,運(yùn)用大量的代碼加以解釋,相信可以幫助到正在學(xué)習(xí)該知識(shí)的小伙伴,大家可以參考一下
    2021-08-08
  • Java 獲取本機(jī)IP地址的方法的兩種方法

    Java 獲取本機(jī)IP地址的方法的兩種方法

    本文主要介紹了Java 獲取本機(jī)IP地址的方法的兩種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Junit 5中@ParameterizedTest與@EnumSource結(jié)合使用

    Junit 5中@ParameterizedTest與@EnumSource結(jié)合使用

    今天小編就為大家分享一篇關(guān)于Junit 5中@ParameterizedTest與@EnumSource結(jié)合使用,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • 利用gson將map轉(zhuǎn)為json示例

    利用gson將map轉(zhuǎn)為json示例

    這篇文章主要介紹了利用gson將map轉(zhuǎn)為json示例,需要的朋友可以參考下
    2014-05-05
  • java實(shí)現(xiàn)表單必填參數(shù)驗(yàn)證的方法

    java實(shí)現(xiàn)表單必填參數(shù)驗(yàn)證的方法

    表單校驗(yàn)是很多注冊(cè)時(shí)必做的功能, 一般我們的處理都是很粗暴的寫個(gè)if()判斷, 然后拋異常. 本文將介紹通過(guò)代理的思想, 用注解優(yōu)雅的處理非空判斷,感興趣的一起來(lái)了解一下
    2021-05-05

最新評(píng)論

宜章县| 南木林县| 化隆| 宣武区| 静乐县| 临江市| 弋阳县| 南召县| 敖汉旗| 岑巩县| 剑河县| 丹凤县| 连州市| 景宁| 苍南县| 新巴尔虎右旗| 大悟县| 普定县| 阜城县| 梅州市| 景德镇市| 周口市| 英吉沙县| 永登县| 建宁县| 蒲江县| 昌江| 京山县| 安龙县| 博客| 兴城市| 沙洋县| 彰化县| 中方县| 开原市| 大港区| 新乡市| 大余县| 鹰潭市| 商都县| 乌恰县|