400 잘못된 요청이 표시되는 이유는 무엇입니까?

400 잘못된 요청이 표시되는 이유는 무엇입니까?

방금 AWS ECS에 서버 설정을 마쳤습니다.

Apache 버전(2.2에서 2.4까지)과 PHP 버전(5.3에서 5.6까지)을 제외하고 모든 구성은 내가 가지고 있는 다른 서버에서 동일합니다.

php_info()만 인쇄하도록 index.php 파일을 수정했지만 계속해서 다음과 같은 결과가 나타납니다.

잘못된 요청

귀하의 브라우저가 이 서버가 이해할 수 없는 요청을 보냈습니다. 또한 ErrorDocument를 사용하여 요청을 처리하려고 하면 400 Bad Request 오류가 발생합니다.

Apache/2.4.25(Amazon) 서버는 xxx.yyy.com 포트 80에 있습니다.

나는 내 방문에서 저장된 모든 로그를 살펴보았는데 다음은 그 특정 방문에서 얻은 것입니다.

오류 기록

[Tue Jan 24 16:20:46.154208 2017] [suexec:notice] [pid 32139] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) 
[Tue Jan 24 16:20:46.249527 2017] [auth_digest:notice] [pid 32146] AH01757: generating secret for digest authentication ... 
[Tue Jan 24 16:20:46.250415 2017] [lbmethod_heartbeat:notice] [pid 32146] AH02282: No slotmem from mod_heartmonitor 
[Tue Jan 24 16:20:46.276823 2017] [mpm_prefork:notice] [pid 32146] AH00163: Apache/2.4.25 (Amazon) OpenSSL/1.0.1k-fips configured -- resuming normal operations 
[Tue Jan 24 16:20:46.276840 2017] [core:notice] [pid 32146] AH00094: Command line: '/usr/sbin/httpd'

액세스 로그

90.152.127.182 - - [24/Jan/2017:16:21:03 +0000] "GET / HTTP/1.1" 400 437 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36" 
90.152.127.182 - - [24/Jan/2017:16:21:04 +0000] "GET /favicon.ico HTTP/1.1" 400 437 "http://xxx.yyy.com/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"

SSL_액세스 로그

90.152.127.182 - - [24/Jan/2017:16:12:24 +0000] "GET / HTTP/1.1" 400 434 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36" 
90.152.127.182 - - [24/Jan/2017:16:12:25 +0000] "GET /favicon.ico HTTP/1.1" 400 434 "https://xxx.yyy.com/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"

400 상태의 원인은 무엇입니까? 물어보기 전에 mod_ssl이 설치되어 있습니다.

답변1

가상 호스트에 불법 문자가 없는지 확인하십시오 ServerName.

"sub_domain.test.com"을 Apache 2.2에서 2.4로 마이그레이션하는 동안 이 문제가 발생했습니다.

이것밑줄"sub_domain"에서는 Apache 2.4가 응답 400 (Bad Request)하지만 오류 로그에 추가 힌트가 없습니다.

당신은 또한 볼 수 있습니다https://stackoverflow.com/questions/2180465/can-domain-name-subdomains-have-an-underscore-in-it

답변2

나는 같은 문제를 가지고있다. 이 수정 사항이 포함된 것으로 생각됩니다. CVE-2016-8743 요청 라인 및 요청 헤더에 RFC7230에 해당하는 HTTP 요청 구문을 적용하여 악의적인 클라이언트 또는 다운스트림 프록시에 의한 응답 분할 및 캐시 오염을 방지합니다.

관련 정보