Corrige La solicitud HTTP simple se envió al puerto HTTPS Error en Nginx

Corrige La solicitud HTTP simple se envió al puerto HTTPS Error en Nginx

En este artículo, mostraremos cómo resolver el "400 Solicitud incorrecta: la solicitud HTTP simple se envió al puerto HTTPS"En el servidor NGINX HTTP. Este error normalmente surge cuando intenta configurar NGINX para manejar las solicitudes HTTP y HTTPS.

Para el propósito de esta guía, estamos considerando un escenario en el que NGINX está sirviendo múltiples sitios web implementados a través de bloques de servidor (o hosts virtuales en Apache) solo un sitio web usa SSL y el resto no.

Leer también: The Ultimate Guide para asegurar, endurecer y mejorar el rendimiento de Nginx

También consideraremos la configuración de SSL de muestra a continuación (hemos cambiado el nombre de dominio real por razones de seguridad), que le dice a NGINX que escuche ambos puertos 80 y 443. Y todas las solicitudes en HTTP deben redirigirse a HTTPS de forma predeterminada.

Configuración de la muestra NGINX

servidor escuchar 80; Ejemplo de server_name.com www.ejemplo.com; devolver 301 https: // www.ejemplo.com $ request_uri;  servidor escuchar 443 ssl http2; Ejemplo de server_name.com www.ejemplo.com; root/var/www/html/ejemplo.com/; índice índice.índice de PHP.índice HTML.htm; #CharSet KOI8-R; access_log/var/log/nginx/ejemplo.com/ejemplo.com_access_log; ERROR_LOG/VAR/LOG/NGINX/Ejemplo.com/ejemplo.COM_ERROR_LOG ERROR; # SSL/TLS CONFIGUS SSL ON; SSL_CERTIFICATE/ETC/SSL/CERTS/ESPEAM_COM_CERT_CHAIN.CRT; ssl_certificate_key/etc/ssl/private/ejemplo_com.llave; incluir/etc/nginx/ssl.D/SSL.conf; ubicación / try_files $ uri $ uri / / index.php?$ QUERY_STRING;  ERROR_PAGE 500 502 503 504 /50X.html; Ubicación = /50x.html root/var/www/html/ejemplo.com/;  # proxy Los scripts de PHP a Apache escuchando en 127.0.0.1:80 # #location ~ \.php $  # proxy_pass http: // 127.0.0.1; # # Pase los scripts PHP al servidor FastCGI escuchando en 127.0.0.1: 9000 # ubicación ~ \ \.php $ root/var/www/html/ejemplo.com/; fastcgi_pass 127.0.0.1: 9001; #FASTCGI_PASS unix:/var/run/php-fpm/php-fpm.calcetín; Índice FastCGI_Index.php; fastcgi_param script_filename $ document_root $ fastcgi_script_name; incluir fastcgi_params; incluir/etc/nginx/fastcgi_params;  # negar el acceso a .archivos htaccess, si la raíz del documento de Apache coincide con el # #location ~ /\ \ \ \ \ \ \.ht  # negar todo; # 

Uso de la configuración anterior, una vez que un cliente intenta acceder a su sitio a través del puerto 80 i.mi http: // ejemplo.comunicarse, El error en cuestión se mostrará como en la siguiente captura de pantalla.

Nginx 404 Error de solicitud incorrecta

Encuentra este error porque cada vez que un clien intenta acceder a su sitio a través de HTTP, la solicitud se redirige a HTTPS. Se debe a que el NGINX espera que SSL se use en la transacción, sin embargo, las solicitudes originales T (recibidas a través del puerto 80) fue simple HTTP, se queja con el error.

Por otro lado, si un cliente usa https: // ejemplo.comunicarse, no encontrarán el error anterior. Además, si tiene otros sitios web configurados para no usar SSL, NGINX intentará usar HTTPS de forma predeterminada para ellos, lo que resulta en el error anterior.

Para corregir este error, comente la línea a continuación en su configuración o configúrelo en OFF.

#SSL ON o SSL OFF 

Guarde y cierre el archivo. Luego reinicie el servicio Nginx.

# SystemCTL reiniciar nginx o $ sudo systemctl reiniciar nginx 

De esta manera, puede habilitar NGINX para manejar las solicitudes HTTP y HTTPS para múltiples bloques de servidor.

Finalmente, a continuación se muestra una lista de artículos sobre la configuración de SSL HTTPS en distribuciones comunes de Linux y FreeBSD.

  1. Configuración de HTTPS con Let's Cifrypt SSL Certificado para Nginx en RHEL/CentOS
  2. Asegure Nginx con el certificado SSL de Ciundpt Free en Ubuntu y Debian
  3. Cómo asegurar Nginx con SSL y Cifrar en FreeBSD

Eso es todo por ahora. Si conoce alguna otra forma de resolver este error, háganoslo saber a través del formulario de comentarios a continuación.