https后的Spring启动:配置为侦听端口8444的Tomcat连接器无法启动。

时间:2017-11-28 15:26:02

标签: java spring spring-mvc tomcat

我按照指南在Spring Boot中启用了https。该申请是事先处理https://localhost:8080

我创建的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

现在,如果我运行main方法来启动spring boot app,它会抛出:

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,并启动时没有错误?

6 个答案:

答案 0 :(得分:9)

我也有同样的问题并且能够解决它。我的问题是生成keystore.p12文件。

如果您有证书文件和私钥文件,可以使用以下命令生成keystore.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文件位于同一目录中。

答案 1 :(得分:2)

我通过使用以下配置解决了相同的问题

# 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

我删除了别名,效果很好。 引用自“您可能不需要密钥别名,因为将只有一个密钥条目” TOMCAT SSL Error: Alias name does not identify a key entry

答案 2 :(得分:1)

我也遇到同样的问题,但在我的情况下,密钥库文件的文件路径(在application.properties中)在Linux上不正确,并导致此错误消息。

答案 3 :(得分:0)

我有同样的问题。对我来说 server.ssl.key-alias 设置为错误的密钥。因此,听起来 application.properties 中的某些服务器错误配置可能导致出现此错误消息。

答案 4 :(得分:0)

从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 =密码

映射到证书的别名

server.ssl.key-alias = alias_name

  

注意:server.ssl.key-store是指密钥库位置。采用   classpath前缀(如果它在src / main / resources中存在)。否则使用   文件:/ some / location。

答案 5 :(得分:-2)

按照此步骤操作 1:选择application.properties

See image

[2]:server.port = 8888 //输入您想要的端口号

并保存此页面并再次运行此应用程序