web-dev-qa-db-fra.com

Pourquoi est-ce que je reçois 400 mauvaises demandes?

Je viens de terminer la configuration d'un serveur sur AWS ECS.

Toutes les configurations sont identiques à un autre serveur que j'ai, à l'exception de la version Apache (de 2.2 à 2.4) et PHP version (de 5.3 à 5.6)).

J'ai modifié mon fichier index.php pour imprimer uniquement le php_info (), mais je reçois toujours:

Mauvaise Demande

Votre navigateur a envoyé une demande que ce serveur ne pouvait pas comprendre. En outre, une erreur 400 Bad Request a été rencontrée lors de la tentative d'utilisation d'un ErrorDocument pour gérer la demande.

Serveur Apache/2.4.25 (Amazon) sur xxx.yyy.com Port 80

J'ai regardé tous les journaux enregistrés de mes accès et voici ce que j'obtiens de cet accès spécifique:

error_log

[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'

access_log

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_access_log

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"

Quelle pourrait être la cause de mon statut 400? Avant de demander, j'ai installé mod_ssl, oui.

8
Sérgio Paulino

Assurez-vous que vous n'avez pas de caractères illégaux dans les ServerName de vos hôtes virtuels.

J'ai rencontré ce problème lors de la migration de "sub_domain.test.com" d'Apache 2.2 à 2.4.

Le trait de soulignement dans "sub_domain" a amené Apache 2.4 à répondre avec 400 (Bad Request) mais sans autre indication dans le journal des erreurs.

Jetez également un œil à https://stackoverflow.com/questions/2180465/can-domain-name-subdomains-have-an-underscore-in-it

17
Chris78

J'ai le même problème. Je soupçonne ce correctif qui a été inclus: CVE-2016-8743 Appliquer la grammaire de demande HTTP correspondant à RFC7230 pour les lignes de demande et les en-têtes de demande, pour empêcher le fractionnement des réponses et la pollution du cache par les clients malveillants ou les proxys en aval.

3
user7400387