Я пробовал загрузочное приложение с последней версией, хотел защитить остальные api ssl, я сделал ниже Создано хранилище ключей и помещено в путь к классам проекта, сервер запустился, нет проблем с запуском, но не может отправить запрос 8080 или 8443, ниже представлена конфигурация,
server.ssl.key-store=KeyStore.p12 server.ssl.key-store-password=shashank server.ssl.key-alias=mydomain server.ssl.key-password=shashank
@Bean public TomcatServletWebServerFactory 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(getHttpConnector()); return tomcat; } private Connector getHttpConnector() { Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); connector.setScheme("https"); connector.setPort(8080); connector.setSecure(true); connector.setRedirectPort(8443); }INFO 84898 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8443 (https) 8080 (https) with context path '/event-processing'
поскольку это самозаверяющий сертификат, в нем говорится, что «этот сертификат не подтвержден третьей стороной».
Цель состоит в том, чтобы сделать https для всех остальных API введите описание изображения здесь




Попробуйте эти изменения:
Измените application.properties, чтобы изменить значение параметра server.ssl.key-store на keystore.p12 из KeyStore.p12
server.ssl.key-store: keystore.p12
Добавьте bean-компонент TomcatEmbeddedServletContainerFactory в класс @Configuration (любой).
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
@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(initiateHttpConnector());
return tomcat;
}
private Connector initiateHttpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(8080);
connector.setSecure(false);
connector.setRedirectPort(8443);
return connector;
}
Я столкнулся с этой проблемой с самоподписанным сертификатом и решил ее, создав сертификат на сервере, а не на моем локальном компьютере, поэтому вам следует запустить команду keytool, которая создает сертификат на сервере, и использовать этот сгенерированный файл .p12 в ваш проект и все будет работать так, как ожидалось.