работал перед настройкой SSL. После добавления SSL HTTPS работает. Мой файл конфигурации: < /p>
spring.application.name=host
# Database connection params (postgresql)
spring.datasource.url=jdbc\:postgresql\://127.0.0.1\:5432/cubes_and_mods
spring.datasource.username=durak
spring.datasource.password=1234
server.ssl.enabled=true
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:host.p12
server.ssl.key-store-password=yourpassword
server.ssl.key-alias=host
server.port: 8083
ignore-source-checking: true
logging.level.org.springframework.beans=DEBUG
logging.level.org.springframework.context=DEBUG
logging.level.org.springframework.web.socket=DEBUG
logging.level.org.springframework.web.socket.handler=DEBUG
# Отключаем HTTP/2 на уровне Spring Boot:
server.http2.enabled=false
# (Опционально) Жёстко задаём, что Tomcat — только HTTP/1.1
server.tomcat.protocol-header=HTTP/1.1
logging.level.org.springframework.web.socket.config=TRACE
logging.level.org.apache.tomcat=DEBUG
logging.level.org.apache.tomcat.util.net=TRACE
logging.level.org.apache.coyote=DEBUG
< /code>
Попытка подключиться с почтальником к WS: //127.0.0.1: 8083 /ошибка консоли 400 < /p>
Ошибка: Неожиданный ответ сервера: 400
Подробная информация
method: get
code: 400
Запросы
sec-websoce- oversion: gr />
sec-webococepococepococepococepococeococepococe- /> Sec-websocket-key: txrhgngfslcoqizfgfao6g ==
connection: обновление
Обновление: websocket
sec-websocket-extensions: urpessage-deflate; client_max_window_bits
host: 127.0.0.1:8083
Заголовки ответов
content-type: text/plain; charset = utf-8
Соединение: закрытие
Попытка подключиться к Postman wss: //127.0.0.1: 8083/conseple 501. /> Ошибка: неожиданный ответ сервера: 501
Подробная информация
Метод запроса: get
Code: 501
Заголовки запросов
sec-websocket-version: 13
sec-websocket-key: upjzzwlp1ptegkrv74ejw ==
connection: upjzzleglep1-grockeckegle:> upgrecgle
Sec-websocket-extensions: urpessage-deflate; client_max_window_bits
host: 127.0.0.1:8083
Заголовки ответов
vary
0: Origin
1: control-control-request-method
2: thu-control-request-заголовки
content-length: 0
hate, 08: 08 May: 08: 08 May: 08: 08 May: 08: 08 May: 08: 08 May: 08: 08: 08: 08: 08: 08: 08: 08: 08: 08: 08: 08: 08: 08: 08: 08: 08: 08: 08: 08: 08:00 GMT
Connection: Close < /p>
Изменение порта сервера на 8443 не дал никакого результата. Проблема не в почте:
wscat -c wss: // localhost: 8443/console -no -check
ошибка: неожиданный ответ сервера: 501
Давайте посмотрим на другие конфигурации:
@Configuration
@EnableWebSocket
public class WebsocketConfig implements WebSocketConfigurer {
@Autowired
private WebsocketMinecraftConsole websocketMinecraftConsole; // Внедряем WebsocketMinecraftConsole
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
System.out.println("WebsocketConfig.registerWebSocketHandlers");
// I've seen this print
registry.addHandler(websocketMinecraftConsole, "/console")
.setAllowedOrigins("*")
.setAllowedOriginPatterns("*"); // Добавьте это;
}
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
}
< /code>
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.allowedHeaders("*");
}
}
< /code>
@Component
public class WebsocketMinecraftConsole extends TextWebSocketHandler {
private boolean firstMessage; // Is it the first message is ID of mineserver
private DockerContainerHandler handler; // Handler for CURRENT SOCKET, contains minecraft server object from DB
@Autowired
private ServiceDockerContainersHandlers ServiceHandlers;
//...
< /code>
There's no normal out. The code of websocket cannot be runned.
Logs after trying to connect:
025-05-08T11:05:30.954+07:00 DEBUG 63134 --- [host] [nio-8083-Poller] org.apache.tomcat.util.net.NioEndpoint : timeout completed: keys processed=0; now=1746677130954; nextExpiration=1746677130953; keyCount=0; hasEvents=false; eval=false
2025-05-08T11:05:31.712+07:00 DEBUG 63134 --- [host] [nio-8083-exec-3] o.a.tomcat.util.net.SecureNioChannel : The SNI host name extracted for connection [java.nio.channels.SocketChannel[connected local=/127.0.0.1:8083 remote=/127.0.0.1:36958]] was [null]
2025-05-08T11:05:31.720+07:00 DEBUG 63134 --- [host] [nio-8083-exec-3] org.apache.tomcat.util.net.NioEndpoint : Registered write interest for [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@39737313:org.apache.tomcat.util.net.SecureNioChannel@622c27b8:java.nio.channels.SocketChannel[connected local=/127.0.0.1:8083 remote=/127.0.0.1:36958]]
2025-05-08T11:05:31.720+07:00 DEBUG 63134 --- [host] [nio-8083-exec-4] org.apache.tomcat.util.net.NioEndpoint : Registered write interest for [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@39737313:org.apache.tomcat.util.net.SecureNioChannel@622c27b8:java.nio.channels.SocketChannel[connected local=/127.0.0.1:8083 remote=/127.0.0.1:36958]]
2025-05-08T11:05:31.721+07:00 DEBUG 63134 --- [host] [nio-8083-exec-5] org.apache.tomcat.util.net.NioEndpoint : Registered read interest for [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@39737313:org.apache.tomcat.util.net.SecureNioChannel@622c27b8:java.nio.channels.SocketChannel[connected local=/127.0.0.1:8083 remote=/127.0.0.1:36958]]
2025-05-08T11:05:31.721+07:00 DEBUG 63134 --- [host] [nio-8083-exec-6] org.apache.tomcat.util.net.NioEndpoint : Registered write interest for [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@39737313:org.apache.tomcat.util.net.SecureNioChannel@622c27b8:java.nio.channels.SocketChannel[connected local=/127.0.0.1:8083 remote=/127.0.0.1:36958]]
2025-05-08T11:05:31.722+07:00 DEBUG 63134 --- [host] [nio-8083-exec-7] o.a.tomcat.util.net.SocketWrapperBase : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@39737313:org.apache.tomcat.util.net.SecureNioChannel@622c27b8:java.nio.channels.SocketChannel[connected local=/127.0.0.1:8083 remote=/127.0.0.1:36958]], Read from buffer: [0]
2025-05-08T11:05:31.722+07:00 DEBUG 63134 --- [host] [nio-8083-exec-7] org.apache.tomcat.util.net.NioEndpoint : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@39737313:org.apache.tomcat.util.net.SecureNioChannel@622c27b8:java.nio.channels.SocketChannel[connected local=/127.0.0.1:8083 remote=/127.0.0.1:36958]], Read direct from socket: [230]
2025-05-08T11:05:31.723+07:00 DEBUG 63134 --- [host] [nio-8083-exec-7] org.apache.tomcat.util.net.NioEndpoint : Calling [org.apache.tomcat.util.net.NioEndpoint@362580d7].closeSocket([org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@39737313:org.apache.tomcat.util.net.SecureNioChannel@622c27b8:java.nio.channels.SocketChannel[connected local=/127.0.0.1:8083 remote=/127.0.0.1:36958]])
2025-05-08T11:05:32.723+07:00 DEBUG 63134 --- [host] [nio-8083-Poller] org.apache.tomcat.util.net.NioEndpoint : timeout completed: keys processed=0; now=1746677132723; nextExpiration=1746677131954; keyCount=0; hasEvents=false; eval=false
< /code>
But SSL works! HTTPS isn't broken? How can I make this microservice to bind wss://[address]/console socket work? Chat GPT and Deep Seek don't understand anything
Подробнее здесь: https://stackoverflow.com/questions/796 ... ttps-works