目次
1 ダウンロードした証明書圧縮パッケージを解凍して、「xxx.pem」ファイルと xxx.key ファイルを取得します。
2 OpenSSL ツールを使用して pem 形式の証明書を PFX 形式の証明書に変換し、「server.pfx」ファイルを取得します
3 Keytool ツールを使用して PFX 形式の証明書ファイルを JKS 形式に変換し、「xxx.jks」ファイルを取得します
4. http と https の両方に同時にアクセスできます
2 SpringBoot スタートアップ クラスを追加します
SpringBoot 構成 HTTPS
作中では https の設定に長時間遭遇しますが、SpringBoot には、Tomcat サーバーが SSL 暗号化を設定するために一般的に使用する .jks ファイルが付属しています。
このプロセスでは、OpenSSL と Keytool の 2 つのツールが使用されます。
OpenSSL: ダウンロード アドレス: http://slproweb.com/products/Win32OpenSSL.html
keytool ツールは jdk に付属するツールで、jdk の /bin ディレクトリにあります。
2. CSRを自ら生み出す
https プロバイダーは .jks ファイルを直接提供しません。したがって、暗号化されたファイルを必要な jks ファイルに変換する必要があります。
1 ダウンロードした証明書圧縮パッケージを解凍して、「xxx.pem」ファイルと xxx.key ファイルを取得します。
「server.pem」ファイルには、2 つの証明書コード「-----BEGIN CERTIFICATE-----」と「-----END CERTIFICATE-----」が含まれており、それぞれサーバー証明書と中間 CA 証明書です。 。
2 OpenSSL ツールを使用して pem 形式の証明書を PFX 形式の証明書に変換し、「server.pfx」ファイルを取得します
openssl の bin ディレクトリを見つけて openssl.exe ファイルを見つけ、右クリックして管理者として実行し、コマンド ラインを開いて次のコマンドを入力します。
pkcs12 -export -out D:\xxx.pfx -in D:\xxx.pem -inkey D:\xxx.key
パスワードを必要に応じて 2 回入力します。このとき、d ディスクに xxx.pfx ファイルが生成されます。ここで入力した PFX 証明書のパスワードを覚えておいてください。その後の JKS パスワードの設定は、ここで設定した PFX パスワードと一致している必要があります。そうでない場合、Tomcat の起動に失敗する可能性があります。
3 Keytool ツールを使用して PFX 形式の証明書ファイルを JKS 形式に変換し、「xxx.jks」ファイルを取得します
keytool -importkeystore -srckeystore D:\xxx.pfx -destkeystore D:\xxx.jks -srcstoretype PKCS12 -deststoretype JKS
プロンプトに従って JKS 証明書のパスワードを 2 回入力します
3 回目にソース キーストアのパスワードの入力を求められたら、生成された xxx.pfx に設定されている PFX 証明書のパスワードを入力します。
Dドライブ配下にxxx.jksが生成されているか確認する
生成が完了したら、新しい「keystorePass.txt」ファイルを作成し、JKS パスワードをこのファイルに保存します。
SpringBootの3つの構成
1 xxx.jksをリソースフォルダーに置きます
#配置jks存放位置
server.ssl.key-store=classpath:xxx.jks
#https端口号
server.port=8090
#是否启用SSL证书
server.ssl.enabled=true
#密钥库密码
server.ssl.key-store-password=jks密码
#密钥库类型(JKS类型)
server.ssl.key-store-type=JKS
2 テストを開始する
4. http と https の両方に同時にアクセスできます
1 つの新しい構成
#http端口号
http.port=18092
2 SpringBoot スタートアップ クラスを追加します
// 获取配置端口
@Value("${http.port}")
private Integer httpPort;
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
// 添加http
tomcat.addAdditionalTomcatConnectors(createStandardConnector());
return tomcat;
}
/**
* 配置http
*
* @return connector
*/
private Connector createStandardConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setPort(httpPort);
return connector;
}
5 つの参考文献
https://www.caojingbin.com/post/40
https://www.cnblogs.com/yangchongxing/p/13834467.html