Spring Bootでhttpsを有効にするためのガイドに従いました。アプリケーションは事前に https:// localhost:808 で動作していました
keystore.jks
と同じディレクトリにあるapplication.properties
を作成しました。現在は次のようになっています。
# Define a custom port instead of the default 8080
server.port = 8444
# Tell Spring Security (if used) to require requests over HTTPS
security.require-ssl=true
# The format used for the keystore
server.ssl.key-store-type:PKCS12
# The path to the keystore containing the certificate
server.ssl.key-store=keystore.p12
# The password used to generate the certificate
server.ssl.key-store-password=<somepassword>
# The alias mapped to the certificate
server.ssl.key-alias=Tomcat
さて、メインメソッドを実行してスプリングブートアプリを起動すると、次のようにスローされます。
Description:
The Tomcat connector configured to listen on port 8444 failed to start. The port may already be in use or the connector may be misconfigured.
Action:
Verify the connector's configuration, identify and stop any process that's listening on port 8444, or configure this application to listen on another port.
ポートは使用されていないので、設定が間違っている必要がありますか?
何を変更すればよいかわかりません。これは単純なSPAアプリで、Springはindex.htmlを提供し、単一のREST=エンドポイントを持っています。この場合、Tomcat/Springはhttpsを受け入れてエラーなしで起動するように設定する必要がありますか?
私も同じ問題を抱えていて、それを修正することができました。私の問題はkeystore.p12
ファイル。
証明書ファイルと秘密鍵ファイルがある場合、generatekeystore.p12
ファイルは次のコマンドを使用します。
openssl pkcs12 -export -in <mycert.crt> -inkey <mykey.key> -out keystore.p12 -name <alias>
パスワードの入力を求められますが、好きなパスワードを入力できます。キーストアファイルが生成されたら、.jar
ファイルが存在します。
以下は実際の設定例です。
server.port=8443
security.require-ssl=true
server.ssl.key-store-type=PKCS12
server.ssl.key-store=file:keystore.p12
server.ssl.key-store-password=<password>
server.ssl.key-alias=<alias>
キーストアファイルのパスに注意してくださいfile:keystore.p12
実行可能ファイルと同じディレクトリに存在する場合.jar
ファイル。
次の構成を使用して同じ問題を解決しました
# Define a custom port instead of the default 8080
server.port=8443
# Tell Spring Security (if used) to require requests over HTTPS
security.require-ssl=true
# The format used for the keystore
server.ssl.key-store-type=PKCS12
# The path to the keystore containing the certificate
server.ssl.key-store=src/main/resources/keystore.p12
# The password used to generate the certificate
server.ssl.key-store-password=root0
エイリアス名を削除し、完全に機能しました。 「キーエントリが1つしかないため、キーエイリアスはおそらく必要ないでしょう」 Tomcat SSLエラー:エイリアス名はキーエントリを識別しません
私も同じ問題を抱えていましたが、私の場合、キーストアファイルのファイルパス(application.properties)がLinuxで正しくなく、このエラーメッセージが表示されていました。
同じ問題がありました。私にとってはserver.ssl.key-aliasは間違ったキーに設定されていました。そのため、一部のserverapplication.propertiesの設定ミスにより、このエラーメッセージが表示されることがあります。
Spring Boot 2.0以降では、このプロパティを無視できます。
security.require-ssl=true
SSLを有効にするには、application.propertiesで以下の構成を使用します
server.ssl.key-store-type = JKS
server.ssl.key-store = classpath:somecert.jks
server.ssl.key-store-password = password
server.ssl.key-alias = alias_name
注:server.ssl.key-storeはキーストアの場所を指します。 src/main/resourcesに存在する場合、クラスパスプレフィックスを使用します。それ以外の場合は、file:/ some/locationを使用します。