M3te0r M3te0r - 1 year ago 136
HTTP Question

NginX http redirection to https returns unreadable respone

I want to redirect all http requests to https with NginX, but I have some difficulties with it.

Here is my vhost file :

server {
gzip off;
listen 80;
listen [::]:80;
server_name mydomain.fr www.mydomain.fr sub.otherdom.fr otherdom.fr;
return 301 https://$host$request_uri;

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
root /usr/share/nginx/html;
index index.html index.htm;
ssl on;
server_name mydomain.fr www.mydomain.fr sub.otherdom.fr otherdom.fr;
ssl_certificate /root/tmp/live-ecdsa/mydomain.fr/0001_chain.pem;
ssl_certificate_key /root/tmp/live-ecdsa/mydomain.fr/privkey-p384.pem;
access_log /var/log/nginx/default.access.log;
charset utf-8;
location / {
try_files $uri $uri/ /index.html;

Trying to access these domain over plain http with different browsers results in the following :
Chrome/Firefox : downloading a file filled with bytes data

Edge : displays a blank page with

curl -I mydomain.fr

Accessing these domains directly over https works.
I have already tried with both
return 301 https://$host$request_uri;
return 301 https://$server_name$request_uri;

Answer Source

Well, although user6788523 response helped me with the debugging, the fault was on my side.

I had several other vhost files with the http2 directive associated with the http port 80 (listen [::]:80 http2;). Removing the http2 directive resolved the problem.

This setting must be used only with ssl enabled server block

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download