Spring boot構成SSL証明書
背景
今やっているプロジェクトでは、一部の機能がウィジェットに確立されているので、ウィジェットがリクエストを開始し、バックグラウンドをリクエストするときは
ここで先に宣言する必要があります.ドメイン名証明書がまだありませんので、ローカルを使用しています.
証明書は様々な方法で入手でき、構成の過程がほぼ一致しているので、自分で構成するときに交換に注意すればいいです.
自己署名証明書
実験を開発するために、
まずjdkの
次に、コマンドラインがファイルに対応するパスに入り、次のコマンドを入力します.
プロンプトに従って、次の情報を入力します.
覚えておきなさい
最後に、現在のディレクトリの下に証明書が生成されます.
アプリケーションを構成します.properties
生成した証明書をプロジェクトディレクトリに移動します.
次に、
注意深い読者は、ここの構成が証明書を作成するときに使用するコマンド式に対応していることを発見します.
httpからhttpにリダイレクト
私たちの元の要求方式は
テスト
ブラウズ中にバックグラウンドインタフェースをリクエスト
正しい要求.
まとめ
自分で生成した証明書は、ブラウザから安全ではないと見なされるので、オンラインになる項目は、正規のSSl証明書を申請しましょう.
関連リファレンス:https://blog.csdn.net/MasonQA...https://blog.csdn.net/m0_3812...
今やっているプロジェクトでは、一部の機能がウィジェットに確立されているので、ウィジェットがリクエストを開始し、バックグラウンドをリクエストするときは
https
しか使用できず、サーバのドメイン名に対してhttps
を行うので、証明書の構成の問題を考慮しなければなりません.ここで先に宣言する必要があります.ドメイン名証明書がまだありませんので、ローカルを使用しています.
.
は開発時にしか使用できません.小さなプログラムがオンラインになると、証明書は失効します.証明書は様々な方法で入手でき、構成の過程がほぼ一致しているので、自分で構成するときに交換に注意すればいいです.
自己署名証明書
実験を開発するために、
をローカルに生成する必要があります.証明書を生成するには、JDK
に付属のkeytool
ツールを直接使用します.まずjdkの
bin
ディレクトリを見つけます.次に、コマンドラインがファイルに対応するパスに入り、次のコマンドを入力します.
keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
プロンプトに従って、次の情報を入力します.
覚えておきなさい
、これは後で使います最後に、現在のディレクトリの下に証明書が生成されます.
アプリケーションを構成します.properties
生成した証明書をプロジェクトディレクトリに移動します.
次に、
application.properties
ファイルを構成します.# SSL
# https
server.port=7443
#
server.ssl.key-store=classpath:keystore.p12
#
server.ssl.key-store-password=
#
server.ssl.key-store-type=PKCS12
#
server.ssl.key-alias=tomcat
注意深い読者は、ここの構成が証明書を作成するときに使用するコマンド式に対応していることを発見します.
httpからhttpにリダイレクト
私たちの元の要求方式は
http
だったので、今httpsを使いたいなら、リダイレクトしなければなりません.前の衝突とはできません.package com.yunzhiclub.alice;
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.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class AliceApplication {
public static void main(String[] args) {
SpringApplication.run(AliceApplication.class, args);
}
/**
* TomcatServletWebServerFactory bean
* http https
* @return
*/
@Bean
public TomcatServletWebServerFactory servletContainer() {
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(initiateHttpConnector());
return tomcat;
}
/**
* HTTP , HTTPS,
* application.properties connector,
* HTTP connector, HTTPS connector
* @return Connector
*/
private Connector initiateHttpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(8080); // http
connector.setSecure(false);
connector.setRedirectPort(7443); // application.properties https
return connector;
}
}
テスト
ブラウズ中にバックグラウンドインタフェースをリクエスト
正しい要求.
まとめ
自分で生成した証明書は、ブラウザから安全ではないと見なされるので、オンラインになる項目は、正規のSSl証明書を申請しましょう.
関連リファレンス:https://blog.csdn.net/MasonQA...https://blog.csdn.net/m0_3812...