web-dev-qa-db-ja.com

httpsの後のスプリングブート:ポート8444でリッスンするように構成されたTomcatコネクタが起動に失敗しました。

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を受け入れてエラーなしで起動するように設定する必要がありますか?

10
cbll

私も同じ問題を抱えていて、それを修正することができました。私の問題は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ファイル。

10
Johna

次の構成を使用して同じ問題を解決しました

# 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エラー:エイリアス名はキーエントリを識別しません

3
Ruthwik

私も同じ問題を抱えていましたが、私の場合、キーストアファイルのファイルパス(application.properties)がLinuxで正しくなく、このエラーメッセージが表示されていました。

1

同じ問題がありました。私にとってはserver.ssl.key-aliasは間違ったキーに設定されていました。そのため、一部のserverapplication.propertiesの設定ミスにより、このエラーメッセージが表示されることがあります。

0
Mohsen Zamani

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を使用します。

0