Nginx [ChatGPT] nginx 에서 jetty 서버로 프록시중 "org.eclipse.jetty.http.BadMessageException: 400: Invalid SNI" 오류
sitelink1 | |
---|---|
sitelink2 | |
extra_vars5 | |
extra_vars6 |
ChatGPT 의 답변은 아래에 기술하였다.
답변중 1, 3 번의 조치만으로도 문제를 해결하였는데,
2번 Jetty 에서의 SNI 비활성화 설정은 Gradle 에서의 Jetty 에 대한 설정 방법을 먼저 찾아야해서 2번 작업을 생략한 상태로 3번을 먼저 처리했는데
2번을 수행하지 않아도 문제가 해결되어서 이번 작업에서는 무시하였다.
Nginx를 통해 dev.omnibuscode.com
도메인의 요청을 localhost:7443
포트의 Jetty 서버로 프록시할 때, org.eclipse.jetty.http.BadMessageException: 400: Invalid SNI
오류가 발생하는 원인과 해결 방법은 다음과 같습니다.
이 오류는 SNI(Server Name Indication)가 올바르게 설정되지 않았을 때 발생합니다.
이를 해결하려면 Nginx와 Jetty의 SSL 설정을 조정하여 서로 호환되도록 만들어야 합니다.
아래의 방법을 순서대로 적용해 보세요.
1. Nginx 설정 수정하기
Nginx의 설정 파일에서 proxy_ssl_server_name
옵션을 설정하여 SNI 정보가 포함되도록 합니다.
server {
listen 443 ssl;
server_name dev.omnibuscode.com;
ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/private.key;
location / {
proxy_pass https://localhost:7443;
proxy_ssl_server_name on;
}
}
2. Jetty에서 SNI 비활성화하기 (옵션)
만약 Jetty에서 SNI 요구를 비활성화하고자 한다면, Jetty 설정 파일 (jetty-ssl.xml
또는 start.ini
파일 등)에 SNI 설정을 추가할 수 있습니다.
예를 들어, SNIRequired
옵션을 비활성화하는 방법입니다:
<Configure id="Server" class="org.eclipse.jetty.server.Server"> <Call name="addConnector"> <Arg> <New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector"> <Set name="SNIRequired">false</Set> </New> </Arg> </Call> </Configure>
3. 클라이언트와 서버 호스트 이름 일치 확인하기
Jetty에서 SNI가 localhost
가 아닌 특정 도메인에 대해 설정된 경우, 해당 도메인과 일치하는 요청이 전달되지 않으면 오류가 발생할 수 있습니다.
Nginx에서 proxy_set_header Host dev.omnibuscode.com;
을 설정하여 호스트 이름이 올바르게 전달되도록 하세요.
location / {
proxy_pass https://localhost:7443;
proxy_ssl_server_name on;
proxy_set_header Host dev.omnibuscode.com;
}
위 설정으로 Nginx가 Jetty로 전달할 때 올바른 SNI와 호스트 이름 정보를 포함하게 됩니다.
Nginx와 Jetty의 설정을 적용한 후, Jetty 서버를 재시작하고 다시 시도해 보세요.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
» | [ChatGPT] nginx 에서 jetty 서버로 프록시중 "org.eclipse.jetty.http.BadMessageException: 400: Invalid SNI" 오류 | 황제낙엽 | 2024.11.12 | 167 |
5 |
Nginx: 413 – Request Entity Too Large
![]() | 황제낙엽 | 2024.02.17 | 213 |
4 | nginx 설치, 실행, SSL 설정, 프록시 설정 | 황제낙엽 | 2024.02.04 | 129 |
3 | [bard] Nginx로 서브 도메인에 따라 내부의 포트만 다르게 실행중인 웹서버들을 라우팅 | 황제낙엽 | 2024.02.01 | 136 |
2 | [Bing] "Apache"와 "Nginx" 의 차이점 | 황제낙엽 | 2024.01.31 | 246 |
1 | Nginx 에 대하여 | 황제낙엽 | 2024.01.18 | 149 |