SpringBoot后端服務開啟Https協議提供訪問(使用阿里云資源)

目錄

概述

?申請/下載證書

部署證書

本地測試訪問

服務器部署訪問

?最后/擴展

總結


概述

本篇博客說明如何將SpringBoot項目開啟Https協議提供訪問。

博文以步驟【申請/下載證書】,【部署證書】,【本地測試訪問】,【服務器部署訪問】?,【擴展】展開說明。

廢話:當我們有類似需求:“小程序上線”后,請求的后端服務必須使用https協議,那么我們就需要去將http協議升級為https協議了。

https協議?大致可以看成:?

https協議 = http協議 + ssl協議

所以,要想將http升級成https很簡單,只需要有一個ssl證書,然后部署到項目即可。

前提準備:IPC備案過的域名

那么,如下就開始我們的說明。?

?申請/下載證書

我使用的是阿里云的服務器和域名,因此可以到阿里云官網搜索【ssl證書】進入【數字證書管理服務】控制臺。

?我們點擊【免費證書】--->【創建證書】--->【證書申請】

?輸入自己備案好的域名,其他基本默認,點擊【提交審核】

審核基本上幾分鐘就可以下發證書,會有短信提示。

審核好后,我們就可以點擊【下載】,獲取我們的證書。?

?我使用的是SpringBoot項目做的測試,使用內置服務器Tomcat,因此直接下載Tomcat對應證書。

?下載的壓縮包內容:

?第一個是我們的證書,第二個是密碼文本文件(存儲密碼)。

部署證書

我創建了一個空的SpringBoot項目來做演示,寫了一個簡單的接口來測試:

?項目結構???

?IndexController(測試接口)

?

?1.將證書放到resources目錄下

?2.編寫配置文件application.yml

***key-store聲明證書的放置的路徑

?***請注意key-store-password填寫自己下載的壓縮包.txt文件里面的密碼

?到此,我們啟動項目即可。

本地測試訪問

我們使用Postman進行測試。

ps:當我們使用本地進行測試的時候,由于本地的IP與我們申請證書時添加的IP不一致,那么Postman會報錯IP不匹配,我們可以不用理會,點擊【Disable SSL Verification】關掉SSL驗證即可。

?成功。

服務器部署訪問

我們將SpringBoot項目打包,上傳到服務器, java -jar運行,然后Postman測試:?

?當然,我們也可以使用域名(申請證書時填寫的域名)進行訪問。

?最后/擴展

我們可能會有這樣的需求:

我們也許不是一開始做項目就部署了SSL證書,而是后期再部署SSL證書,那么我們在此之前前端項目使用的是http協議進行后端服務訪問,那么我們能不能不修改前端的代碼,想要http協議和https協議都能訪問呢?

這是可以的,我們可以將http協議的訪問重定向到https協議進行訪問即可。

這樣做后,我們后端服務跑起來的時候就會開啟兩個端口,一個http的端口,一個https的端口。

在啟動類中進行配置

package com.mh;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.context.annotation.Bean;@SpringBootApplication
public class SslTestApplication {public static void main(String[] args) {SpringApplication.run(SslTestApplication.class, args);}@Beanpublic TomcatServletWebServerFactory tomcatServletWebServerFactory() {TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory() {@Overrideprotected void postProcessContext(Context context) {SecurityConstraint securityConstraint = new SecurityConstraint();securityConstraint.setUserConstraint("CONFIDENTIAL");SecurityCollection securityCollection = new SecurityCollection();securityCollection.addPattern("/*");securityConstraint.addCollection(securityCollection);context.addConstraint(securityConstraint);}};factory.addAdditionalTomcatConnectors(httpConnector());return factory;}@Beanpublic Connector httpConnector() {Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");connector.setScheme("http");// http的端口connector.setPort(8080);connector.setSecure(false);// http的端口后轉向到的https的端口connector.setRedirectPort(443);return connector;}
}

當然,你也可以做配置類,我這里直接放到啟動類了,只要能將他們加到IOC容器即可生效。

?配置好后,我們再打包,重新放到服務器運行,瀏覽器測試:

回車后,自動跳轉訪問https

總結

開啟Https很簡單,總的來說只需要下載一個SSL證書進行部署即可。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39296.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39296.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39296.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SIP/VoIP之常見的視頻問題

除了語音通話外,視頻通話也是SIP協議通話中重要的功能,在實際應用中,經常會遇到一些視頻問題,如下(以h264為例) 一、 己方未顯示對方視頻圖像 排查方法: 查看網絡抓包中有沒有發給已方的視頻…

LORA開發板采集溫濕度數據,連接PC上位機顯示和液晶屏顯示

一、準備材料 準備以下板子和器件 Lora開發板x2 USB數據線x2 OLED 屏幕x2 StLink下載器x1 母對母杜邦線x3 DHT11 x2 二、設備連接 如圖所示先將OLED 屏幕插入到開發板中 接著按照圖中所示的,將串口一以及lora的撥碼開關撥到指定方向 接著將USB數據線一端插入到…

SQL Server用sql語句添加列,添加列注釋

SQL Server用sql語句添加列,添加列注釋 微軟文檔: https://learn.microsoft.com/zh-cn/sql/relational-databases/tables/add-columns-to-a-table-database-engine?viewsql-server-ver15 alter table article add RedirectURL varchar(600) nu…

(七)Unity VR項目升級至Vision Pro需要做的工作

Vision Pro 概述 定位為混合現實眼鏡,對AR支持更友好 無手柄,支持手(手勢)、眼(注視)、語音交互 支持空間音頻,相比立體聲、環繞聲更有沉浸感和空間感 支持VR/AR應用,支持多種應用模…

八字精批API接口

接口平臺&#xff1a;https://api.yuanfenju.com/ 開發文檔&#xff1a;https://doc.yuanfenju.com/ 支持格式&#xff1a;JSON 請求方式&#xff1a;HTTP POST <?php//密鑰 $api_secret "wD******XhOUW******pvr"; //請求網關 $gateway_host_url "ht…

FPGA應用學習筆記-----復位電路(二)和小結

不可復位觸發器若和可復位觸發器混合寫的話&#xff0c;不可復位觸發器是由可復位觸發器饋電的。 不應該出現的復位&#xff0c;因為延時導致了冒險&#xff0c;異步復位存在靜態冒險 附加素隱含項&#xff0c;利用數電方法&#xff0c;消除靜態冒險 這樣多時鐘區域還是算異步的…

【Docker】如何在設計 dockerfile 過程中,設置容器啟動后的定時任務

如何在設計 dockerfile 過程中&#xff0c;設置容器啟動后的定時任務 jwensh 2023.08.14 文章目錄 如何在設計 dockerfile 過程中&#xff0c;設置容器啟動后的定時任務1. 基于 alpine 設計 dockerfile 過程中&#xff0c;設置容器啟動后的定時任務2. 基于 CentOS 設計 Dockerf…

深度學習實戰基礎案例——卷積神經網絡(CNN)基于SqueezeNet的眼疾識別|第1例

文章目錄 前言一、數據準備1.1 數據集介紹1.2 數據集文件結構 二、項目實戰2.1 數據標簽劃分2.2 數據預處理2.3 構建模型2.4 開始訓練2.5 結果可視化 三、數據集個體預測 前言 SqueezeNet是一種輕量且高效的CNN模型&#xff0c;它參數比AlexNet少50倍&#xff0c;但模型性能&a…

Linkedin為什么要退出中國市場?

在迅速發展的時代,職場也在不斷變換,只有不斷地提升專業技能和進行培訓,才能在職場中獲得成功。Linkedin作為一家專注于職業發展的平臺,專業的學習體驗以及熱門技能贏得了人們青睞。然而遺憾的是這個曾經讓人備受青睞的平臺,如今卻在中國市場中黯然落幕,究竟是何種原因讓曾經風…

大數據Flink(六十一):Flink流處理程序流程和項目準備

文章目錄 Flink流處理程序流程和項目準備 一、Flink流處理程序的一般流程

Springboot 設置統一的請求返回格式

現在開發過程中主要采用前后端分離的方式進行開發測試&#xff0c;也就是前端封裝請求&#xff0c;后端提供標準的API接口服務。一般現在json 格式受到開發者們的青睞&#xff0c;學習過程中我們可以設置接口的返回類型&#xff0c;那么怎么做到設置統一的返回格式呢&#xff1…

數據在內存中的存儲(二進制形式存儲)

計算機要處理的信息是多種多樣的&#xff0c;如數字、文字、符號、圖形、音頻、視頻等&#xff0c;這些信息在人們的眼里是不同的。但對于計算機來說&#xff0c;它們在內存中都是一樣的&#xff0c;都是以二進制的形式來表示。 要想學習編程&#xff0c;就必須了解二進制&…

Spark SQL優化:NOT IN子查詢優化解決

背景 有如下的數據查詢場景。 SELECT a,b,c,d,e,f FROM xxx.BBBB WHERE dt ${zdt.addDay(0).format(yyyy-MM-dd)} AND predict_type not IN ( SELECT distinct a FROM xxx.AAAAAWHERE dt ${zdt.addDay(0).format(yyyy-MM-dd)} ) 分析 通過查看SQL語句的執行計劃基本…

Dubbo基礎學習(筆記一)

目錄 第一章、概念介紹1.1&#xff09;什么是RPC框架1.2&#xff09;什么是分布式系統1.3&#xff09;Dubbo概述1.3&#xff09;Dubbo基本架構 第二章、服務提供者2.1&#xff09;目錄結構和依賴2.2&#xff09;model層2.3&#xff09;service層2.4&#xff09;resources配置文…

ARTS 挑戰打卡的第8天 ---volatile 關鍵字在MCU中的作用,四個實例講解(Tips)

前言 &#xff08;1&#xff09;volatile 關鍵字作為嵌入式面試的常考點&#xff0c;很多人都不是很了解&#xff0c;或者說一知半解。 &#xff08;2&#xff09;可能有些人會說了&#xff0c;volatile 關鍵字不就是防止編譯器優化的嗎&#xff1f;有啥好詳細講解的&#xff1…

HashMap底層相關內容

HashMap的底層結構&#xff1a; 1.7之前 數組加鏈表&#xff0c;當兩個值進行插入的時候 采用頭插法進行插入&#xff0c;可能會造成死循環 1.8之后 數組加鏈表/紅黑樹&#xff0c;當兩個值進行插入的時候&#xff0c;采用尾插法進行插入&#xff0c;不會造成死循環 HashMap底…

xml轉map工具類

背景&#xff1a;最近遇到接口返回是xml&#xff0c;所以需要整一個轉換的工具類&#xff0c;方便后續其他xml處理。 依賴引入&#xff1a; <dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.1</versi…

澎峰科技|邀您關注2023 RISC-V中國峰會!

峰會概覽 2023 RISC-V中國峰會&#xff08;RISC-V Summit China 2023&#xff09;將于8月23日至25日在北京香格里拉飯店舉行。本屆峰會將以“RISC-V生態共建”為主題&#xff0c;結合當下全球新形勢&#xff0c;把握全球新時機&#xff0c;呈現RISC-V全球新觀點、新趨勢。 本…

linux下nginx配置https和反向代理本地端口

1 修改配置文件/etc/nginx/sites-enabled/default 在配置文件中增加一個server用來做https端口監聽&#xff0c; ssl_certificate和ssl_certificate_key修改為自己申請的https認證文件 server{listen 443 ssl;server_name www.dogrich.net;#root /var/www/html;# 上面配置的…

《3D 數學基礎》12 幾何圖元

目錄 1 表達圖元的方法 1.1 隱式表示法 1.2 參數表示 1.3 直接表示 2. 直線和射線 2.1 射線的不同表示法 2.1.1 兩點表示 2.1.2 參數表示 2.1.3 相互轉換 2.2 直線的不同表示法 2.2.1 隱式表示法 2.2.2 斜截式 2.2.3 相互轉換 3. 球 3.1 隱式表示 1 表達圖元的方…