Spring WebSocket не работает после ошибки конфигурации SSL 501, но HTTPS работаетJAVA

Программисты JAVA общаются здесь
Anonymous
Spring WebSocket не работает после ошибки конфигурации SSL 501, но HTTPS работает

Сообщение Anonymous »

работал перед настройкой 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

Вернуться в «JAVA»