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

將SpringBoot項目的HTTP站點改為HTTPS的全過程

 更新時間:2026年02月12日 08:58:59   作者:麥芽糖0219  
本文介紹了如何在Spring Boot項目中實現(xiàn)HTTPS請求,首先,創(chuàng)建一個Spring Boot項目并編寫一個BasicController.java文件,然后,配置application.yaml文件以支持HTTPS,接著,使用Java自帶的keytool工具生成一個免費的HTTPS證書,需要的朋友可以參考下

一 新建springboot項目

我們先新建一個springboot項目,寫一個BasicController.java,內(nèi)容如下

package com.https.httpsdemo.demos.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

@Controller
public class BasicController {

    // http://127.0.0.1:8081/hello
    @GetMapping("/hello")
    @ResponseBody
    public String hello() {
        return "Hello ";
    }
}

application.yaml內(nèi)容如下

server:
  port: 8081

瀏覽器訪問http://127.0.0.1:8081/hello如下

接下來開始把http請求改為https

二 https證書

首先需要有一個 https 證書,可以從各個云服務(wù)廠商處申請一個免費的(我申請的為阿里云SSL),也可以直接借助 Java 自帶的 JDK 管理工具 keytool 來生成一個免費的 https 證書。

找到命令窗口,右鍵選擇管理員打開

執(zhí)行如下命令

keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650

命令含義如下:

  • genkey 表示要創(chuàng)建一個新的密鑰。
  • alias 表示 keystore 的別名。
  • keyalg 表示使用的加密算法是 RSA ,一種非對稱加密算法。
  • keysize 表示密鑰的長度。
  • keystore 表示生成的密鑰存放位置。
  • validity 表示密鑰的有效時間,單位為天。

如上圖,以此輸入相關(guān)信息即可。

在C:\Windows\System32目錄可以看到生成了文件

把上邊這個文件復(fù)制到項目根目錄下

application.yml文件如下

# 應(yīng)用服務(wù) WEB 訪問端口
server:
  port: 8081
  ssl:
    # 證書路徑,秘鑰文件路徑,也可以配置絕對路徑
    key-store: keystore.p12
    # 證書密碼,秘鑰生成時在終端輸入的秘鑰口令
    key-store-password: 123456
    # 秘鑰類型,與秘鑰生成命令一樣
    key-store-type: PKCS12
    # 證書別名,與秘鑰生成命令一樣
    key-alias: tomcat

啟動類添加如下內(nèi)容

package com.https.httpsdemo;

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 HttpsDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(HttpsDemoApplication.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;
    }

    /**
     * 瀏覽器訪問http://127.0.0.1:8080/hello時,自動跳轉(zhuǎn)到https://127.0.0.1:8081/hello
     * @return
     */
    private Connector redirectConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(8080);
        connector.setSecure(false);
        connector.setRedirectPort(8081);
        return connector;
    }
}

此時,我們在瀏覽器就可以通過https來訪問https://127.0.0.1:8081/hello了

因為我用的是自己生成的ssl證書,所以https請求是不被客戶端識別的,如下

點擊后,內(nèi)容如下

注意:生產(chǎn)環(huán)境中,則需要購買合法的 SSL 證書。

由于在啟動類已經(jīng)進(jìn)行了配置,所以我們也可以通過訪問http://127.0.0.1:8080/hello來自動跳轉(zhuǎn)到https://127.0.0.1:8081/hello

以上就是將SpringBoot項目的HTTP站點改為HTTPS的全過程的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot HTTP站點改為HTTPS的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 深度解析Java中的JSONObject從基礎(chǔ)到高級應(yīng)用

    深度解析Java中的JSONObject從基礎(chǔ)到高級應(yīng)用

    在當(dāng)今前后端分離的架構(gòu)中,JSONObject已成為Java開發(fā)者處理JSON數(shù)據(jù)的瑞士軍刀,本文將深入解析JSONObject的核心機(jī)制與實戰(zhàn)技巧,感興趣的朋友跟隨小編一起看看吧
    2025-09-09
  • Nacos配置管理實踐(手把手教你搭建Nacos集群)

    Nacos配置管理實踐(手把手教你搭建Nacos集群)

    本文詳解Nacos配置管理在微服務(wù)中的實現(xiàn),包括通過bootstrap.yml讀取Nacos配置、配置優(yōu)先級規(guī)則(本地>服務(wù)名>環(huán)境)、熱更新機(jī)制及集群搭建步驟(數(shù)據(jù)庫初始化、Nginx反向代理),強(qiáng)調(diào)多環(huán)境隔離與容災(zāi)部署優(yōu)化
    2025-08-08
  • java根據(jù)負(fù)載自動抓取jstack?dump詳情

    java根據(jù)負(fù)載自動抓取jstack?dump詳情

    這篇文章主要介紹了java根據(jù)負(fù)載自動抓取jstack?dump詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • JVM加載class文件的原理機(jī)制實例詳解

    JVM加載class文件的原理機(jī)制實例詳解

    Java是一種具有動態(tài)性的解釋型語言,類(class)只有被加載到JVM后才能運行,接下來通過本文給大家介紹JVM加載class文件的原理機(jī)制詳解,感興趣的朋友一起看看吧
    2022-04-04
  • Springboot集成Protobuf的流程步驟

    Springboot集成Protobuf的流程步驟

    在以往的項目中進(jìn)行網(wǎng)絡(luò)通信和數(shù)據(jù)交換的應(yīng)用場景中,最經(jīng)常使用的技術(shù)便是json或xml,但是今天在介紹一個Google的力作protobuf作為數(shù)據(jù)交換格式,文中給大家介紹了Springboot集成Protobuf的流程步驟,需要的朋友可以參考下
    2024-03-03
  • Java實現(xiàn)登錄密碼強(qiáng)度校驗的項目實踐

    Java實現(xiàn)登錄密碼強(qiáng)度校驗的項目實踐

    本文主要介紹了Java實現(xiàn)登錄密碼強(qiáng)度校驗的項目實踐,包括使用正則表達(dá)式匹配校驗和密碼強(qiáng)度校驗工具類這兩種方法,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • JDK1.7的ConcurrentHashMap源碼解析

    JDK1.7的ConcurrentHashMap源碼解析

    這篇文章主要介紹了JDK1.7的ConcurrentHashMap源碼解析,HashMap是非線程安全的,而HashTable是線程安全的,但是HashTable實現(xiàn)同步的方法比較暴力,即在所有的方法體上添加synchronized關(guān)鍵字,需要的朋友可以參考下
    2023-12-12
  • IDEA “Cannot resolve symbol”爆紅問題解決

    IDEA “Cannot resolve symbol”爆紅問題解決

    最近發(fā)現(xiàn)個問題,IDEA 無法識別同一個 package 里的其他類,將其顯示為紅色,本文就來介紹一下IDEA “Cannot resolve symbol”爆紅問題解決,感興趣的可以了解一下
    2023-10-10
  • 使用Pinyin4j進(jìn)行拼音分詞的方法

    使用Pinyin4j進(jìn)行拼音分詞的方法

    下面小編就為大家分享一篇使用Pinyin4j進(jìn)行拼音分詞的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • RocketMQ?ConsumeQueue與IndexFile實時更新機(jī)制源碼解析

    RocketMQ?ConsumeQueue與IndexFile實時更新機(jī)制源碼解析

    這篇文章主要為大家介紹了RocketMQ?ConsumeQueue與IndexFile實時更新機(jī)制源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05

最新評論

绥德县| 诸城市| 柳河县| 株洲县| 西和县| 琼结县| 道孚县| 潜山县| 资源县| 新乐市| 江阴市| 东安县| 潞西市| 渑池县| 同仁县| 清苑县| 闸北区| 仙居县| 龙州县| 壤塘县| 赤水市| 稻城县| 若尔盖县| 汶上县| 富宁县| 宜君县| 呼玛县| 依兰县| 满洲里市| 定州市| 木里| 鲁甸县| 新巴尔虎右旗| 临猗县| 加查县| 屯昌县| 西乌珠穆沁旗| 紫云| 宁强县| 伊春市| 弥渡县|