ホームページ  >  記事  >  Java  >  http アクセスと https アクセスを同時にサポートするように SpringBoot で SSL を構成する方法

http アクセスと https アクセスを同時にサポートするように SpringBoot で SSL を構成する方法

王林
王林転載
2023-05-18 14:25:061061ブラウズ

Transport Layer Security (英語: Transport Layer Security、TLS と略称) とその前身である Secure Sockets Layer (略称 SSL) は、セキュリティを提供するために設計されたセキュリティ プロトコルです。インターネット通信のデータ整合性保護。

SSL にはレコード層 (レコード層) とトランスポート層が含まれており、レコード層プロトコルによってトランスポート層データのカプセル化形式が決まります。

トランスポート層セキュリティ プロトコルは、X.509 認証を使用し、次に非対称暗号化アルゴリズムを使用して通信当事者を認証し、対称キーをセッション キーとして交換します。

このセッション キーは、2 つの通信当事者によって交換されるデータを暗号化し、2 つのアプリケーション間の通信の機密性と信頼性を確保するために使用されます。これにより、クライアント アプリケーションとサーバー アプリケーション間の通信が盗聴されなくなります。攻撃者たち。

ステップ 1: 証明書の生成

TLS/SSL を構成する前に、対応する署名証明書を取得し、JAVA 開発環境を構成する必要があります。 Java 次の Keytool を使用して証明書を生成し、コンソールを開いて次のように入力します:

keytool -genkey -alias michaelSpica -storetype PKCS12 -keyalg RSA -keysize 2048 - keystore E: \Temp\michaelSpica.p12 -validity 3650

  • -

    alias エイリアス (必要に応じて選択できます)

  • -

    storetype キー ストア タイプを指定します。

  • -

    keyalg 証明書を生成するアルゴリズムの名前。RSAは非対称暗号化アルゴリズムです

  • -

    keysize 証明書のサイズ

  • -

    keystore のストレージ パス生成された証明書ファイル (相対パスまたは絶対パス)

  • #-
  • validity

    証明書の有効期間

  • As図に示すように:

http アクセスと https アクセスを同時にサポートするように SpringBoot で SSL を構成する方法

注: 正式な環境での標準値を入力してください

ステップ 2: 証明書を取得する

パスに従って生成された証明書を見つけて、証明書をコピーします。図に示すように、プロジェクトに移動します。

http アクセスと https アクセスを同時にサポートするように SpringBoot で SSL を構成する方法ステップ 3: SSL 構成を追加します。

図に示すように、次の構成を

application.yml

に追加します。

http アクセスと https アクセスを同時にサポートするように SpringBoot で SSL を構成する方法ステップ 4: https アクセスを構成する

Spring Boot を追加するときは、次のような構成情報をお読みください。

(注: 必要な jar を追加してください)

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
package com.michael.protocol.config;
import org.apache.catalina.connector.Connector;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * Created by michael on 2019/2/23.
 */
@Configuration
public class TomcatConfig {
    @Value("${server.http.port}")
    private int httpPort;
    @Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        tomcat.addAdditionalTomcatConnectors(createStandardConnector()); // 添加http
        return tomcat;
    }
    private Connector createStandardConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setPort(httpPort);
        return connector;
    }
}

注: これSpring Boot 2.0.X バージョンです。

この時点で、すべての作業が完了しました。次のようなプロジェクトを開始します。

http アクセスと https アクセスを同時にサポートするように SpringBoot で SSL を構成する方法成功したことを示す 2 つのポートが表示され、次の 2 つの方法でアクセスできます。

https://localhost:443

http://localhost:80

以上がhttp アクセスと https アクセスを同時にサポートするように SpringBoot で SSL を構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。