Spring Boot プロジェクトで https (jks) を使用する

目次

SpringBoot 構成 HTTPS

2. CSRを自ら生み出す

1 ダウンロードした証明書圧縮パッケージを解凍して、「xxx.pem」ファイルと xxx.key ファイルを取得します。

2 OpenSSL ツールを使用して pem 形式の証明書を PFX 形式の証明書に変換し、「server.pfx」ファイルを取得します

3 Keytool ツールを使用して PFX 形式の証明書ファイルを JKS 形式に変換し、「xxx.jks」ファイルを取得します

SpringBootの3つの構成

1 xxx.jksをリソースフォルダーに置きます

2 テストを開始する

4. http と https の両方に同時にアクセスできます

1 つの新しい構成

2 SpringBoot スタートアップ クラスを追加します

5 つの参考文献


SpringBoot 構成 HTTPS

作中では https の設定に長時間遭遇しますが、SpringBoot には、Tomcat サーバーが SSL 暗号化を設定するために一般的に使用する .jks ファイルが付属しています。

このプロセスでは、OpenSSL と Keytool の 2 つのツールが使用されます。

OpenSSL: ダウンロード アドレス: http://slproweb.com/products/Win32OpenSSL.html

keytool ツールは jdk に付属するツールで、jdk の /bin ディレクトリにあります。

2. CSRを自ら生み出す

https プロバイダーは .jks ファイルを直接提供しません。したがって、暗号化されたファイルを必要な jks ファイルに変換する必要があります。

1 ダウンロードした証明書圧縮パッケージを解凍して、「xxx.pem」ファイルと xxx.key ファイルを取得します。

「server.pem」ファイルには、2 つの証明書コード「-----BEGIN CERTIFICATE-----」と「-----END CERTIFICATE-----」が含まれており、それぞれサーバー証明書と中間 CA 証明書です。 。

2 OpenSSL ツールを使用して pem 形式の証明書を PFX 形式の証明書に変換し、「server.pfx」ファイルを取得します

openssl の bin ディレクトリを見つけて openssl.exe ファイルを見つけ、右クリックして管理者として実行し、コマンド ラインを開いて次のコマンドを入力します。

pkcs12 -export -out D:\xxx.pfx -in D:\xxx.pem -inkey D:\xxx.key

パスワードを必要に応じて 2 回入力します。このとき、d ディスクに xxx.pfx ファイルが生成されます。ここで入力した PFX 証明書のパスワードを覚えておいてください。その後の JKS パスワードの設定は、ここで設定した PFX パスワードと一致している必要があります。そうでない場合、Tomcat の起動に失敗する可能性があります。

3 Keytool ツールを使用して PFX 形式の証明書ファイルを JKS 形式に変換し、「xxx.jks」ファイルを取得します

keytool -importkeystore -srckeystore D:\xxx.pfx -destkeystore D:\xxx.jks -srcstoretype PKCS12 -deststoretype JKS

プロンプトに従って JKS 証明書のパスワードを 2 回入力します

3 回目にソース キーストアのパスワードの入力を求められたら、生成された xxx.pfx に設定されている PFX 証明書のパスワードを入力します。

Dドライブ配下にxxx.jksが生成されているか確認する

生成が完了したら、新しい「keystorePass.txt」ファイルを作成し、JKS パスワードをこのファイルに保存します。

SpringBootの3つの構成

1 xxx.jksをリソースフォルダーに置きます

#配置jks存放位置
server.ssl.key-store=classpath:xxx.jks
#https端口号
server.port=8090
#是否启用SSL证书
server.ssl.enabled=true
#密钥库密码
server.ssl.key-store-password=jks密码
#密钥库类型(JKS类型)
server.ssl.key-store-type=JKS

2 テストを開始する

4. http と https の両方に同時にアクセスできます

1 つの新しい構成

#http端口号
http.port=18092

2 SpringBoot スタートアップ クラスを追加します

// 获取配置端口
@Value("${http.port}")
    private Integer httpPort;

@Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        // 添加http
        tomcat.addAdditionalTomcatConnectors(createStandardConnector());
        return tomcat;
    }

/**
     * 配置http
     *
     * @return connector
     */
    private Connector createStandardConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setPort(httpPort);
        return connector;
    }

 

5 つの参考文献

https://www.caojingbin.com/post/40

https://www.cnblogs.com/yangchongxing/p/13834467.html

 

 

 

おすすめ

転載: blog.csdn.net/u013380694/article/details/116302790