欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot 改造成https訪問(wèn)的實(shí)現(xiàn)

 更新時(shí)間:2020年10月01日 10:45:33   作者:kk_star  
這篇文章主要介紹了SpringBoot 改造成https訪問(wèn)的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

SpringBoot https改造

1.生成密鑰證書(shū)

生成命令:keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650

(1)關(guān)鍵字解釋:

alias 密鑰別名

storetype 指定密鑰倉(cāng)庫(kù)類型

keyalg 生證書(shū)的算法名稱,RSA是一種非對(duì)稱加密算法

keysize 證書(shū)大小

keystore 生成的證書(shū)文件的存儲(chǔ)路徑

validity 證書(shū)的有效期

(2)生成證書(shū)注意:

在輸入證書(shū)生成命令之后,會(huì)提示輸入:

密鑰庫(kù)口令:證書(shū)密碼,在后面的項(xiàng)目中配置證書(shū)時(shí)用到

姓氏:一般沒(méi)什么用,在瀏覽器中查看證書(shū)時(shí)會(huì)顯示,用于正式場(chǎng)合的證書(shū)還是需要填寫(xiě)標(biāo)準(zhǔn)。

組織單位:證書(shū)使用單位信息,一般沒(méi)什么用,在瀏覽器中查看證書(shū)時(shí)會(huì)顯示,用于正式場(chǎng)合的證書(shū)還是需要填寫(xiě)標(biāo)準(zhǔn)。

組織單位名稱:證書(shū)使用單位名稱,一般沒(méi)什么用,在瀏覽器中查看證書(shū)時(shí)會(huì)顯示,用于正式場(chǎng)合的證書(shū)還是需要填寫(xiě)標(biāo)準(zhǔn)。

所在的城市或區(qū)域名稱:瀏覽器中查看證書(shū)信息時(shí)會(huì)顯示。

所在的省/市/自治區(qū)名稱:瀏覽器中查看證書(shū)信息時(shí)會(huì)顯示。

單位的雙字母國(guó)家/地區(qū)代碼:國(guó)家或地區(qū)編碼,瀏覽器中查看證書(shū)信息時(shí)會(huì)顯示。

2.將生成的密鑰證書(shū)拷貝到項(xiàng)目中的resource中(也可以不拷貝到項(xiàng)目中,后面配置路徑時(shí)配置密鑰證書(shū)的絕對(duì)路徑即可)。

3.修改項(xiàng)目配置文件application.properties,增加如下配置項(xiàng):

server.ssl.key-store=classpath:keystore.p12 (密鑰文件路徑,也可以配置絕對(duì)路徑)

server.ssl.key-store-password=aqjcpt (密鑰生成時(shí)輸入的密鑰庫(kù)口令)

server.ssl.keyStoreType=PKCS12 (密鑰類型,與密鑰生成命令一致)

server.ssl.keyAlias=tomcat (密鑰別名,與密鑰生成命令一致)

4.啟動(dòng)項(xiàng)目,直接訪問(wèn)項(xiàng)目即可:

補(bǔ)充知識(shí):SpringBoot配置HTTPS,并實(shí)現(xiàn)HTTP訪問(wèn)自動(dòng)轉(zhuǎn)HTTPS訪問(wèn)

這里說(shuō)一下為什么寫(xiě)這篇文章,因?yàn)槲乙彩且粋€(gè)SpringBoot初學(xué)者,在配置https的時(shí)候遇到了一些坑,根據(jù)網(wǎng)上的配置方式,發(fā)現(xiàn)一些類已經(jīng)過(guò)時(shí),這里僅以記錄一下我的配置過(guò)程,以供參考.

1.使用jdk自帶的 keytools 創(chuàng)建證書(shū)

打開(kāi)cmd窗口,輸入如下命令

keytool -genkey -alias tomcat -keyalg RSA -keystore ./server.keystore

按照提示進(jìn)行操作

輸入密鑰庫(kù)口令:123456
再次輸入新口令:123456
您的名字與姓氏是什么?
[Unknown]: kaibowang
您的組織單位名稱是什么?
[Unknown]: yuxuelian
您的組織名稱是什么?
[Unknown]: yuxuelian
您所在的城市或區(qū)域名稱是什么?
[Unknown]: chengdu
您所在的省/市/自治區(qū)名稱是什么?
[Unknown]: chengdushi
該單位的雙字母國(guó)家/地區(qū)代碼是什么?
[Unknown]: china
CN=kaibowang, OU=yuxuelian, O=yuxuelian, L=chengdu, ST=chengdushi, C=china是否正確?
[否]: y

輸入 <tomcat> 的密鑰口令
(如果和密鑰庫(kù)口令相同, 按回車):
再次輸入新口令:

Warning:
JKS 密鑰庫(kù)使用專用格式。建議使用 "keytool -importkeystore -srckeystore C:\Users\Administrator\.keystore -destkeystore C:\Users\Administrator\.keystore -deststoretype pkcs12" 遷移到行業(yè)標(biāo)準(zhǔn)格式 PKCS12。

創(chuàng)建完成后,可在用戶根目錄查看生成的keystore文件

2.新建springboot項(xiàng)目,將上一步生成的keystone文件復(fù)制到項(xiàng)目的根目錄,在application.properties添加如下配置

server.port=443
server.ssl.key-store=server.keystore
server.ssl.key-alias=tomcat
server.ssl.enabled=true
server.ssl.key-store-password=123456
server.ssl.key-store-type=JKS

這里將服務(wù)器端口號(hào)設(shè)置成443端口,即https的默認(rèn)訪問(wèn)端口,那么在進(jìn)行https訪問(wèn)的時(shí)候可以不帶端口號(hào)直接訪問(wèn),如果端口被占用使用

netstat -ano

查看哪個(gè)進(jìn)程號(hào)占用了端口,使用

tasklist|findstr (查看到的進(jìn)程號(hào))
# simple
C:\Users\Administrator>tasklist|findstr 3664
vmware-hostd.exe 3664 Services 0 5,040 K

打開(kāi)任務(wù)管理器,殺死占用進(jìn)程,或打開(kāi)對(duì)應(yīng)的應(yīng)用程序的設(shè)置,關(guān)閉監(jiān)聽(tīng)

至此 https配置完畢 訪問(wèn) https://localhost 查看是否配置成功

3.http訪問(wèn)自動(dòng)轉(zhuǎn)https訪問(wèn)

向spring容器中注入兩個(gè)Bean,代碼如下

  @Bean
  public Connector connector(){
    Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setScheme("http");
    connector.setPort(80);
    connector.setSecure(false);
    connector.setRedirectPort(443);
    return connector;
  }
 
  @Bean
  public TomcatServletWebServerFactory tomcatServletWebServerFactory(Connector connector){
    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(connector);
    return tomcat;
  }

首先 這里需要使用 TomcatServletWebServerFactory 這個(gè)類,網(wǎng)上清一色的都是使用 EmbeddedServletContainerFactory 這個(gè)類.

在新版本的SpringBoot中,我發(fā)現(xiàn)已近找不到這個(gè)類了,幾經(jīng)周轉(zhuǎn),翻閱源碼,才找到這個(gè)類,這也是我為什么寫(xiě)這篇文章的初衷.

其次在這里設(shè)置http的監(jiān)聽(tīng)端口為80端口,http默認(rèn)端口,這樣在訪問(wèn)的時(shí)候也可以不用帶上端口號(hào).

完成以上配置后,我們?cè)L問(wèn) http://localhost 即可自動(dòng)跳轉(zhuǎn)為 https://localhost

以上這篇SpringBoot 改造成https訪問(wèn)的實(shí)現(xiàn)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot整合Swagger3生成接口文檔的示例代碼

    SpringBoot整合Swagger3生成接口文檔的示例代碼

    Swagger 是一個(gè) RESTful API 的開(kāi)源框架,它的主要目的是幫助開(kāi)發(fā)者設(shè)計(jì)、構(gòu)建、文檔化和測(cè)試 Web API,本文給大家介紹了SpringBoot整合Swagger3生成接口文檔的流程,并通過(guò)代碼講解的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • 使用IDEA向Gitee提交SpringBoot項(xiàng)目進(jìn)行遠(yuǎn)程管理

    使用IDEA向Gitee提交SpringBoot項(xiàng)目進(jìn)行遠(yuǎn)程管理

    本文主要介紹了使用IDEA向Gitee提交SpringBoot項(xiàng)目進(jìn)行遠(yuǎn)程管理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • SpringBoot項(xiàng)目jar發(fā)布后如何獲取jar包所在目錄路徑

    SpringBoot項(xiàng)目jar發(fā)布后如何獲取jar包所在目錄路徑

    這篇文章主要介紹了SpringBoot項(xiàng)目jar發(fā)布后如何獲取jar包所在目錄路徑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • spring?retry方法調(diào)用失敗重試機(jī)制示例解析

    spring?retry方法調(diào)用失敗重試機(jī)制示例解析

    這篇文章主要為大家介紹了spring?retry方法調(diào)用失敗重試機(jī)制的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Spring.Net IOC依賴注入原理流程解析

    Spring.Net IOC依賴注入原理流程解析

    這篇文章主要介紹了Spring.Net IOC依賴注入原理流程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Java Runtime用法實(shí)戰(zhàn)案例

    Java Runtime用法實(shí)戰(zhàn)案例

    這篇文章主要介紹了Java Runtime用法,結(jié)合實(shí)例形式分析了Runtime針對(duì)系統(tǒng)內(nèi)存、處理器信息的獲取相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • Java通過(guò)IO流輸出文件目錄的實(shí)例代碼

    Java通過(guò)IO流輸出文件目錄的實(shí)例代碼

    這篇文章主要介紹了Java通過(guò)IO流輸出文件目錄,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 將下載好的jar包導(dǎo)入到本地maven倉(cāng)庫(kù)中操作

    將下載好的jar包導(dǎo)入到本地maven倉(cāng)庫(kù)中操作

    這篇文章主要介紹了將下載好的jar包導(dǎo)入到本地maven倉(cāng)庫(kù)中操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Java?Spring的核心與設(shè)計(jì)思想你知道嗎

    Java?Spring的核心與設(shè)計(jì)思想你知道嗎

    這篇文章主要為大家詳細(xì)介紹了Java?Spring的核心與設(shè)計(jì)思想,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • Logback與Log4j2日志框架性能對(duì)比與調(diào)優(yōu)方式

    Logback與Log4j2日志框架性能對(duì)比與調(diào)優(yōu)方式

    這篇文章主要介紹了Logback與Log4j2日志框架性能對(duì)比與調(diào)優(yōu)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12

最新評(píng)論