也许我会在这里找到帮助。我想在Spring Boot应用程序上启用SSL。我有一个类似的配置:
服务器:端口:8999 ssl:已启用:true密钥库:classpath:keystore.jks密钥库密码:mypass密码:mypass
问题是我的密钥库。我已将* crt文件导入别名为“ tomcat”的密钥库中:
keytool -importcert -file certificate.crt -keystore native.jks -alias tomcat
但是,我仍然无法正确访问我的rest api。呕吐,Firefox出错:
SSL_ERROR_RX_RECORD_TOO_LONG
certificate.crt,certificate.p12,certificate.pk,privkey.pem和三个文件root_ca_1.ca-bundle,root_ca_2.ca-bundle,root_ca_3.ca-bundle
。这就是我的全部。我对ssl主题非常了解,只需阅读一些教程并尝试了一些keytool命令以使其工作。我将不胜感激。提前谢谢。
嗯,您需要在ssl配置中添加更多属性
server:
ssl:
key-store: classpath:config/tls/keystore.p12
key-store-password: password ##this will be your certificate password
key-store-type: PKCS12
ciphers: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
enabled-protocols: TLSv1.2
http2:
enabled: true
确保p / 12密钥库文件位于config / tls中的类路径(src / main / resources)下
但是要生成密钥库文件,请使用以下openssl命令,其中将使用.crt和.key文件生成.p12文件。
。crt和.key位于文件夹CA下,文件p12将是在CA下生成
请注意,您将在之后要求输入证书密码运行以下命令
openssl pkcs12 -export -in CA/certificate.crt -inkey CA/certificate.key -name certificate -out CA/certificate.p12
如果要将此证书添加到本地cacert,请使用下面的命令
在jre \ lib \ security下
keytool -importcert -noprompt -trustcacerts -alias ca.certificate -file CA/certificate.crt -keystore cacerts -storepass changeit