Проблема с HTTPS на локальном хосте Spring Boot

Я хотел превратить свой локальный хост из протокола передачи гипертекста в протокол передачи гипертекста на уровне защищенных сокетов. Итак, я добавил хранилище ключей в свой весенний загрузочный проект и настроил свои свойства application.properties следующим образом:

ИНФОРМАЦИЯ

Проблема с HTTPS на локальном хосте Spring Boot

Но я получаю сообщение об ошибке в хроме, которое:

localhost uses an unsupported protocol.
ERR__VERSION_OR_CIPHER_MISMATCH

Примечание. Я не вносил изменений ни в один из файлов Java.

0
0
211
1

Ответы 1

Когда я столкнулся с этой проблемой, я решил ее с помощью 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

Другие вопросы по теме