spring - Spring Boot 本地主机 https 问题
问题描述
我想让我的本地主机从超文本传输协议变为安全套接字层超文本传输协议。所以我在我的 spring boot 项目中添加了一个密钥库,并像这样配置了我的 application.properties:
信息
但是我在 chrome 中得到一个错误:
localhost uses an unsupported protocol.
ERR__VERSION_OR_CIPHER_MISMATCH
注意:我没有对任何 java 文件进行任何更改。
解决方案
当我遇到这个问题时,我通过bean
下面的方法解决了它。希望这对你有帮助
@Configuration
class CustomConfiguration {
@Bean
public EmbeddedServletContainerFactory servletContainer() {
final int port = 8443;
final String keystoreFile = "/path/to/keystore"
final String keystorePass = "keystore-password"
final String keystoreType = "pkcs12"
final String keystoreProvider = "SunJSSE"
final String keystoreAlias = "tomcat"
TomcatEmbeddedServletContainerFactory factory =
new TomcatEmbeddedServletContainerFactory(this.port);
factory.addConnectorCustomizers( new TomcatConnectorCustomizer() {
void customize(Connector con) {
Http11NioProtocol proto = (Http11NioProtocol) con.getProtocolHandler();
proto.setSSLEnabled(true);
con.setScheme("https");
con.setSecure(true);
proto.setKeystoreFile(keystoreFile);
proto.setKeystorePass(keystorePass);
proto.setKeystoreType(keystoreType);
proto.setProperty("keystoreProvider", keystoreProvider);
proto.setKeyAlias(keystoreAlias);
}
});
return factory;
}
}
还要确保你调用 keytool -storetype pkcs12
,而不是-storepass pkcs12
推荐阅读
- java - 具有动态规划问题的桶数组
- c# - 在 Update() 中只实例化一个对象一次
- javascript - 单击另一个 div 时显示 div - 不工作
- python - 有没有办法用一个脚本同时运行多个 bash 脚本?
- knex.js - Migrations, and Seeds using a module based folder structure
- javascript - ES6 类实例化中的错误消息
- node.js - gulp 的可重用配置文件
- bash - wget 命令用于在 allocine 上请求身份验证后下载视频
- javascript - 在 div 内拖动元素
- sql - How to move all non-null values to the top of my column?