방금 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 요청 구문을 적용하여 악의적인 클라이언트 또는 다운스트림 프록시에 의한 응답 분할 및 캐시 오염을 방지합니다.