到目前为止,我已经设置了一个运行良好的 Spring Framework 5 项目。需要为某些功能启用 HTTPS,因此请遵循教程。当前使用以下命令在服务器上生成了证书和密钥:
keytool -genkeypair -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 365000
然后,我将此密钥库导入到我的资源文件夹中并使用了以下属性:
server.ssl.key-store= classpath:keystore.p12
server.ssl.key-store-password= myPassword
server.ssl.key-store-type= PKCS12
server.ssl.key-alias= tomcat
server.port= 8444
我还使用以下配置设置了从 HTTP 到 HTTPS 的重定向:
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
tomcat.addAdditionalTomcatConnectors(redirectConnector());
return tomcat;
}
private Connector redirectConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(8182);
connector.setSecure(false);
connector.setRedirectPort(8444);
return connector;
}
当从我的 IDE 本地运行或通过运行编译的 .jar 时,它工作正常。但是,当我尝试在我的服务器(以前运行良好的本地运行 Synology NAS)上运行它时,我在尝试访问地址 ( https://192.168.10.10:8444) 时出现错误,在 Firefox:SSL_ERROR_NO_CYPHER_OVERLAP 和 chrome上出现以下错误 ERR_SSL_VERSION_OR_CIPHER_MISMATCH。我一直在寻找答案,但我没有找到任何改变这个问题结果的解决方案。
白衣非少年
慕田峪4524236
相关分类