Spring BootでHttpsを使用しています。


本論文では、Spring Bootにおいて、Httpsを用いてサービスを提供する方法を紹介し、Http要求を自動的にHttpsにリダイレクトする。
Https証明書
巧婦は米なしの炊事は難しいです。最初の始まりはHttps証明書を取得します。証明書機関に証明書を申請してもいいし、自分でルート証明書を作成してもいいです。
Webプロファイルの作成
コードの中でConfigration注釈を使用したクラスを作成します。次のコードのように。

@Configuration
public class WebConfig {
    //Bean   ...
}
Httpsの設定
設定クラスにEmboddedServletContiner Customazer Beanを追加し、Https証明書とポート番号を設定します。

@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
  return new EmbeddedServletContainerCustomizer() {
    @Override
    public void customize(ConfigurableEmbeddedServletContainer container) {
      Ssl ssl = new Ssl();
      //Server.jks           
      ssl.setKeyStore("server.jks");
      ssl.setKeyStorePassword("123456");
      container.setSsl(ssl);
      container.setPort(8443);
    }
  };
}
Httpを設定して、Httpsに自動的にリダイレクトします。
EmboddedはデフォルトではConnectorしかありません。Httpsサービスを提供しながらHttpをサポートするにはConnectorを追加する必要があります。設定クラスに以下の構成を追加します。

@Bean
public EmbeddedServletContainerFactory servletContainerFactory() {
  TomcatEmbeddedServletContainerFactory factory =
    new TomcatEmbeddedServletContainerFactory() {
      @Override
      protected void postProcessContext(Context context) {
        //SecurityConstraint    ,         URL          。
        SecurityConstraint securityConstraint = new SecurityConstraint();
        securityConstraint.setUserConstraint("CONFIDENTIAL");
        SecurityCollection collection = new SecurityCollection();
        collection.addPattern("/*");
        securityConstraint.addCollection(collection);
        context.addConstraint(securityConstraint);
      }
    };
  factory.addAdditionalTomcatConnectors(createHttpConnector());
  return factory;
}
 
private Connector createHttpConnector() {
  Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
  connector.setScheme("http");
  connector.setSecure(false);
  connector.setPort(8080);
  connector.setRedirectPort(8443);
  return connector;
}
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。