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を変更
・
- 4.アクセスするためのサービス開始 HTTPSを:// localhostを:8443。
のみ使用し、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を。 } }
もう一つ:
自分の側で生成された証明書は、パブリックネットワークに認定されていません。以下に。公衆ネットワーク認証に、あなたは今およそ年間千ドルよりも安く、(それらに利用可能なドメイン名が、彼らは公共のネットワーク認証資格情報を生成することができます)インターネット関連機関を購入する必要があります。
参考記事: