Spring BootでHttpsを使用しています。
本論文では、Spring Bootにおいて、Httpsを用いてサービスを提供する方法を紹介し、Http要求を自動的にHttpsにリダイレクトする。
Https証明書
巧婦は米なしの炊事は難しいです。最初の始まりはHttps証明書を取得します。証明書機関に証明書を申請してもいいし、自分でルート証明書を作成してもいいです。
Webプロファイルの作成
コードの中でConfigration注釈を使用したクラスを作成します。次のコードのように。
設定クラスにEmboddedServletContiner Customazer Beanを追加し、Https証明書とポート番号を設定します。
EmboddedはデフォルトではConnectorしかありません。Httpsサービスを提供しながらHttpをサポートするにはConnectorを追加する必要があります。設定クラスに以下の構成を追加します。
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;
}
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。