我想为我的春季启动应用程序启用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吗?那些crt
和cer
文件呢?他们在哪里使用?
答案 0 :(得分:1)
关于localhost uses an unsupported protocol.
确保服务器支持客户端可以支持的密码。
This site can’t provide a secure connection
,该消息可能是因为连接不受信任!当然。在这里你只是告诉客户忽略它。
您还在JKS文件中设置了别名,请确保告诉服务器加载正确的别名。
将JKS放在src/main/resources
中可能是一种很好的做法,但不是必需的,只要确保它安全且易于访问。
对于Java,不需要显式{p> crt
和cer
,但是一旦您获得CA的签名证书,您就可以将证书导入JKS以让服务器找到中间证书和根证书(如果存在,root不是必需的)
通过keytool生成密钥后,只需保持文件安全即可。您需要生成CSR值,并且可信证书导入也需要相同的jKS。
我还建议在JSSE上获得一些OpenSSL(如果可能的话)。