国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot整合自簽名SSL證書,轉(zhuǎn)變HTTPS安全訪問(單向認(rèn)證服務(wù)端)

這篇具有很好參考價值的文章主要介紹了SpringBoot整合自簽名SSL證書,轉(zhuǎn)變HTTPS安全訪問(單向認(rèn)證服務(wù)端)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

前言

HTTP 具有相當(dāng)優(yōu)秀和方便的一面,然而 HTTP 并非只有好的一面,事物皆具兩面性,它也是有不足之處的。例如:

  1. 通信使用明文(不加密),內(nèi)容可能會被竊聽。
  2. 不驗證通信方的身份,因此有可能會遭遇偽裝。
  3. 無法證明報文的完整性,所以有可能會遭篡改等。

因HTTP有存在通信上的不足,HTTPS因此誕生(HTTPS 是身披 SSL 外殼的 HTTP),HTTPS采用非對稱加密,從而相對安全。

SSL協(xié)議介紹

SSL (Secure Sockets Layer)安全套接層,是一個不依賴于平臺和運(yùn)用程序的協(xié)議,位于TCP/IP協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通信提高安全支持。

是由Netscape公司于1990年開發(fā),用于保障Word Wide Web(WWW)通訊的安全。主要任務(wù)是提供私密性,信息完整性和身份認(rèn)證。

SpringBoot整合自簽名SSL證書,轉(zhuǎn)變HTTPS安全訪問(單向認(rèn)證服務(wù)端),WEB開發(fā),spring boot,ssl,https

SSL原理詳解

SSL的體系結(jié)構(gòu)中包含兩個協(xié)議子層,其中底層是SSL記錄協(xié)議層(SSL Record Protocol Layer);高層是SSL握手協(xié)議層(SSL HandShake Protocol Layer)。

SpringBoot整合自簽名SSL證書,轉(zhuǎn)變HTTPS安全訪問(單向認(rèn)證服務(wù)端),WEB開發(fā),spring boot,ssl,https

  • SSL記錄協(xié)議層的作用是為高層協(xié)議提供基本的安全服務(wù)。SSL紀(jì)錄協(xié)議針對HTTP協(xié)議進(jìn)行了特別的設(shè)計,使得超文本的傳輸協(xié)議HTTP能夠在SSL運(yùn)行。紀(jì)錄封裝各種高層協(xié)議,具體實(shí)施壓縮解壓縮、加密解密、計算和校驗MAC等與安全有關(guān)的操作。
  • SSL握手協(xié)議層包括SSL握手協(xié)議(SSL HandShake Protocol)、SSL密碼參數(shù)修改協(xié)議(SSL Change
    Cipher Spec Protocol)和SSL告警協(xié)議(SSL Alert
    Protocol)。握手層的這些協(xié)議用于SSL管理信息的交換,允許應(yīng)用協(xié)議傳送數(shù)據(jù)之間相互驗證,協(xié)商加密算法和生成密鑰等。

SSL握手協(xié)議的作用是協(xié)調(diào)客戶和服務(wù)器的狀態(tài),使雙方能夠達(dá)到狀態(tài)的同步。

其中最重要的是記錄協(xié)議和握手協(xié)議:

  • SSL記錄協(xié)議:它建立在可靠的傳輸(如TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能
  • SSL握手協(xié)議:它建立在SSL記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開始之前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。

整合HTTPS

SSL證書的頒發(fā)必須是公開公認(rèn)的CA機(jī)構(gòu)頒發(fā)的,在瀏覽器中才會被認(rèn)可是合法的;
SSL證書是針對域名的,單域名的SSL證書對非該域名是無效的,通配域名證書對一級域名和二級域名都有效。

生成自簽名SSL

在JDK bin目錄下,運(yùn)行:

# D:\java\key 此地址為存放目錄,需要自己創(chuàng)建
keytool -genkey -alias tomcat  -storetype PKCS12 -keyalg RSA -keysize 2048  -keystore D:\java\key\keystore.p12 -validity 3650 -ext san=ip:127.0.0.1,dns:localhost -storepass 123456

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

各參數(shù)的含義:

  1. -storetype 指定密鑰倉庫類型
  2. -keyalg 生證書的算法名稱,RSA是一種非對稱加密算法
  3. -keysize 證書大小,秘鑰長度
  4. -keystore 生成的證書文件的存儲路徑
  5. -validity 證書的有效期,單位 天
  6. -alias 表示keystore的別名
  7. -genkey 表示要創(chuàng)建一個新秘鑰
  8. -ext san=ip: 安裝證書后,通過這個IP進(jìn)行訪問不會提示不安全,多個IP使用[,]分隔
  9. -ext san=dns: 安裝證書后,通過這個域名進(jìn)行訪問不會提示不安全,多個域名使用[,]分隔

執(zhí)行完上面一行命令后,在你的系統(tǒng)的當(dāng)前用戶目錄下會生成一個keystore.p12文件,我們也可以使用以下命令查看證書內(nèi)容:

keytool -list -v -storetype pkcs12 -keystore keystore.p12

SpringBoot整合自簽名SSL證書,轉(zhuǎn)變HTTPS安全訪問(單向認(rèn)證服務(wù)端),WEB開發(fā),spring boot,ssl,https
如果你已經(jīng)有SSL證書,你也可將其導(dǎo)入到keystore里,供Spring Boot使用

keytool -import -alias tomcat -file myCertificate.crt -keystore keystore.p12 -storepass password

配置文件

將這個文件拷貝到我們項目的resources目錄下,然后修改application.properties文件,添加HTTPS支持。
SpringBoot整合自簽名SSL證書,轉(zhuǎn)變HTTPS安全訪問(單向認(rèn)證服務(wù)端),WEB開發(fā),spring boot,ssl,https

server:
  port: 443
  servlet:
    context-path: /
    session:
      timeout: PT24H  # 超時24小時
  ssl:
    #文件地址
    key-store: classpath:certificate/keystore.p12
    #證書密碼
    key-store-password: 123456
    key-store-type: PKCS12
    key-alias: tomcat
  http2:
    enabled: true

這樣就可以通過HTTPS來訪問我們的Web了。

配置HTTP重定向至HTTPS

光有HTTPS肯定還不夠,很多用戶可能并不知道,用戶有可能繼續(xù)使用HTTP來訪問你的網(wǎng)站,這個時候我們需要添加HTTP自動重定向到HTTPS的功能,當(dāng)用戶使用HTTP來進(jìn)行訪問的時候自動轉(zhuǎn)為HTTPS的方式。

配置很簡單,在入口類中添加相應(yīng)的重定向Bean就行了,如下:

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;

/**
 * @ClassName: ConnectorConfig
 * @description:
 * @author: Liuxb
 * @version: v1.0
 * @date: 2023/10/26 14:47
 */
@Configuration
public class ConnectorConfig {
    @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;
    }

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

}

這個時候當(dāng)我們訪問http://localhost:80的時候系統(tǒng)會自動重定向到https://localhost:443這個地址上。文章來源地址http://www.zghlxwxcb.cn/news/detail-735694.html

到了這里,關(guān)于SpringBoot整合自簽名SSL證書,轉(zhuǎn)變HTTPS安全訪問(單向認(rèn)證服務(wù)端)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Nginx解決通過openssl自簽名證書訪問Https報不安全告警的問題

    nginx代理設(shè)置自簽ssl證書并進(jìn)行https方式訪問,瀏覽器中會報不安全的告警,記錄一下處理過程 本文內(nèi)容摘自CSDN博主「Dylanu」的原創(chuàng)文章 解決https網(wǎng)站通過nginx+openssl自簽名證書訪問,在谷歌瀏覽器報不安全告警的問題 使用指定-subj “/C=CN/ST=MyProvince/L=MyCity/O=MyOrganization”,生成根

    2024年02月03日
    瀏覽(17)
  • 理解HTTPS/TLS/SSL(一)基礎(chǔ)概念+配置本地自簽名證書

    理解HTTPS/TLS/SSL(一)基礎(chǔ)概念+配置本地自簽名證書

    對于HTTPS、TLS、SSL相關(guān)的概念,平時也是時常接觸到??催^幾篇文章之后,總以為自己真正了解了,實(shí)際上并沒有,準(zhǔn)備補(bǔ)充一下這一部分的基礎(chǔ)知識,對于更深層次的東西,例如各種標(biāo)準(zhǔn)的解讀,則不打算深入。 我們都知道HTTP是不安全的,以及為什么不安全。但是為了更直

    2024年02月11日
    瀏覽(20)
  • 內(nèi)網(wǎng)環(huán)境下nginx使用自簽名ssl證書配置https請求

    內(nèi)網(wǎng)環(huán)境下nginx使用自簽名ssl證書配置https請求

    一、安裝Openssl nginx有openssl 命令,沒有的自行百度,我配置的nginx是存在的所以沒查這部分 二、生成密鑰 可以在本地生成然后把文件拷貝到服務(wù)器,也可以直接在服務(wù)器指定目錄生成,我選擇的后者。 應(yīng)該是哪個目錄都可以,只要在nginx.conf文件中引入正確地址就可以 我的配

    2024年01月21日
    瀏覽(22)
  • SpringBoot + Vue2項目打包部署到服務(wù)器后,使用Nginx配置SSL證書,配置訪問HTTP協(xié)議轉(zhuǎn)HTTPS協(xié)議

    SpringBoot + Vue2項目打包部署到服務(wù)器后,使用Nginx配置SSL證書,配置訪問HTTP協(xié)議轉(zhuǎn)HTTPS協(xié)議

    配置nginx.conf文件,這個文件一般在/etc/nginx/...中,由于每個人的體質(zhì)不一樣,也有可能在別的路徑里,自己找找... 證書存放位置,可自定義存放位置 兩個文件 后端配置 把.pfx拷貝到resource下,然后配置一下yml

    2024年02月02日
    瀏覽(100)
  • 【密碼學(xué)】使用mkcert安裝CA、自簽名ssl證書,配置nginx的https 證書筆記

    【密碼學(xué)】使用mkcert安裝CA、自簽名ssl證書,配置nginx的https 證書筆記

    CA(Certificate Authority,證書授權(quán))是由認(rèn)證機(jī)構(gòu)服務(wù)者簽發(fā),是數(shù)字簽名的技術(shù)基礎(chǔ)保障,也是網(wǎng)上實(shí)體身份的證明,能夠證明某一實(shí)體的身份及其公鑰的合法性,證明該實(shí)體與公鑰二者之間的匹配關(guān)系。 在電子商務(wù)系統(tǒng)中,所有實(shí)體的證書都是由證書授權(quán)中心即CA中心頒發(fā)并簽

    2024年02月03日
    瀏覽(30)
  • mac制作ssl證書|生成自簽名證書,nodejs+express在mac上搭建https+wss(websocket)服務(wù)器

    mac制作ssl證書|生成自簽名證書,nodejs+express在mac上搭建https+wss(websocket)服務(wù)器

    mac 自帶 openssl 所以沒必要像 windows 一樣先安裝 openssl,直接生成即可 生成 key 讓輸入兩次密碼,隨便,但是兩次得是一樣的 移除密碼 生成 csr Country Name (2 letter code) [ 國家 ]:CN State or Province Name (full name) [ 省份 ]:Beijing Locality Name (eg, city) [ 城市 ]:Beijing Organization Name (eg, company)

    2024年02月09日
    瀏覽(19)
  • nginx配置ssl證書使用https訪問

    nginx配置ssl證書使用https訪問

    一:申請證書,我使用的是阿里云免費(fèi)證書 二:下載證書,解壓到服務(wù)器上 兩個文件:www.xx.com.pem和www.xx.com.key 三:打開配置文件/usr/local/nginx/conf/nginx.conf 放開端口443,替換ssl_certificate和ssl_certificate_key為自己證書路徑 ? ?server { ? ? ? ? listen ? ? ? 443 ssl; ? ? ? ? server_na

    2024年01月20日
    瀏覽(33)
  • Apache配置ssl證書-實(shí)現(xiàn)https訪問

    443為HTTPS服務(wù)的默認(rèn)端口 啟用SSL功能,安裝mod_ssl.so模塊 使用Certbot簽發(fā)和續(xù)費(fèi)泛域名SSL證書:https://blog.csdn.net/cljdsc/article/details/133461361 vhost的域名配置文件.conf,在目錄:/etc/httpd/conf.d HTTP配置: HTTPS配置: HTTP HTTPS 配置 查看配置文件是否正常 重啟apache配置

    2024年02月03日
    瀏覽(31)
  • Linux nginx實(shí)現(xiàn)訪問,配置ssl證書實(shí)現(xiàn)https訪問

    注意:服務(wù)器需要開通80端口 (1)alias: alias指定的路徑是location的別名,不管location的值怎么寫,資源的 真實(shí)路徑都是 alias 指定的路徑 例如:同樣請求 http://xxx.com/upload/top.gif 時,在服務(wù)器查找的資源路徑是: /www/wwwroot/upload/top.gif (2)root:真實(shí)的路徑是root指定的值加上

    2024年02月01日
    瀏覽(24)
  • SpringBoot配置https(SSL證書)

    SpringBoot配置https(SSL證書)

    第一步: 首先得明白什么是wss協(xié)議: 可以看這篇文章:WSS、SSL 和 https 之間的關(guān)系 第二步: 先拿到ssl證書:我這邊是用的阿里云的免費(fèi)證書具體獲取方法如下: 可以參考:阿里云申請免費(fèi) SSL證書 https 的圖文教程_林中明月間丶-CSDN博客_阿里云申請免費(fèi)ssl證書 將下載的證書壓縮包解

    2024年02月11日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包