springboot + HTTPS

HTTP危険なアクセスは、比較的良くhttpsを使用します。

参考サイト:https://blog.csdn.net/bock1984/article/details/90116965

次のように:

  • 1.ローカルのSSL証明書を作成するためのツールが付属してJDKのkeytoolを使用します

 コマンドラインツールを起動し、次のコマンドを実行し、JDKのbinディレクトリを入力します。
       

-genkey -v -alias Tomcatの-keyalg keytoolはRSAがF:\ 36500 tomcat.keystore -validity -keystore

。1
.-アルゴリズム名keyalg緑の証明書を、RSAは非対称暗号化アルゴリズムである 2.-キーストアを生成し保存された証明書ファイルパス 3は、証明書のvalid.、妥当です

 

ここに画像を挿入説明

  • 2.結果tomcat.keystoreのspringbootファイルはプロジェクトのルートディレクトリにコピーされます。


ここに画像を挿入説明

  • 3.ファイルapplication.propertiesを変更


 のみ使用し、HTTPプロトコルの訪問で後ろに、application.propertiesプロファイルのショーを見て

確かに十分な光HTTPSがありません、多くのユーザーは、ユーザーがサイトにアクセスするためにHTTPを使用し続けることができ、ユーザーは自動的に変換時にアクセスするためにHTTPを使用して、我々はHTTPS HTTP自動操舵機能を追加する必要があり、この時間を、知らないかもしれませんHTTPSの方法。
(这个是springboot2.x的配置,sprintboot1.x有些不一样 区别就是1.0用 EmbeddedServletContainerFactory ,,,2.0用 TomcatServletWebServerFactory)
(另也可以不用新建这个配置类,而是在入口类中添加下面这两个Bean就行了
package com.nsoft.gkzp.syscore.config;

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;

/**
 * 监听http端口,如访问网址为http协议的,自动转换为Https
 */
@Configuration
public class HttpsComponent {

    @Bean
    public Connector connector(){

        Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(8082);//Connector监听的http的端口号
        connector.setSecure(false);
        connector.setRedirectPort(8443);//监听到http的端口号后转向到的https的端口号(一般会用443端口)
        return connector;
    }

    @Bean
    public TomcatServletWebServerFactory tomcatServletWebServerFactory(){

        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(コネクタ()); 
        戻るTomcatを。
    } 
}

 

 

もう一つ:

自分の側で生成された証明書は、パブリックネットワークに認定されていません。以下に。公衆ネットワーク認証に、あなたは今およそ年間千ドルよりも安く、(それらに利用可能なドメイン名が、彼らは公共のネットワーク認証資格情報を生成することができます)インターネット関連機関を購入する必要があります。

 

 


参考記事:

おすすめ

転載: www.cnblogs.com/zdyang/p/11775839.html