Spring Boot:RSA有效,JKS没有

时间:2017-04-17 02:13:26

标签: java ssl

我想为我的春季启动应用程序启用SSL。

我用这个命令生成了一个密钥库:

keytool -genkey -alias myapp -keyalg RSA -keystore tomcat.keystore

application.properties包含:

server.port = 8443
server.ssl.key-store = classpath:tomcat.keystore
server.ssl.key-store-password = ###
server.ssl.key-password = !&*
server.ssl.enabled=true

首先,我使用此命令创建了JKS密钥库:

keytool -genkey -alias tomcat -keystore keystore.jks -validity 3650

但访问https://localhost:8443时收到错误:

This site can’t provide a secure connection

localhost uses an unsupported protocol.

为什么它现在正在工作而不是呢?

我还有一些问题: 1.我查看了一些教程,他们都建议将密钥库文件放在src/main/resources中。这真的是个好主意吗?

2. key-store-password是什么?什么是key-password

3.这就是我们要做的全部启用SSL吗?那些crtcer文件呢?他们在哪里使用?

1 个答案:

答案 0 :(得分:1)

关于localhost uses an unsupported protocol.确保服务器支持客户端可以支持的密码。

This site can’t provide a secure connection,该消息可能是因为连接不受信任!当然。在这里你只是告诉客户忽略它。

您还在JKS文件中设置了别名,请确保告诉服务器加载正确的别名。

将JKS放在src/main/resources中可能是一种很好的做法,但不是必需的,只要确保它安全且易于访问。

对于Java,不需要显式{p> crtcer,但是一旦您获得CA的签名证书,您就可以将证书导入JKS以让服务器找到中间证书和根证书(如果存在,root不是必需的)

通过keytool生成密钥后,只需保持文件安全即可。您需要生成CSR值,并且可信证书导入也需要相同的jKS。

我还建议在JSSE上获得一些OpenSSL(如果可能的话)。