web-dev-qa-db-fra.com

nginx redirige HTTPS vers HTTP

Comment puis-je rediriger de https vers http?

j'ai le code ci-dessous mais cela ne semble pas fonctionner.

server {
        listen 443;
        server_name example.com;
        rewrite ^(.*) http://example.com$1 permanent;
 }
28
keno

La réponse ci-dessus fonctionnera, vous devez générer un certificat auto-signé (ou en avoir un réel) et configurer nginx en tant que tel: 

server {
  listen *:443;
  ssl on;
  server_name domain.com;
  rewrite ^(.*) http://domain.com$1 permanent;

  ssl_certificate      /data/certs/domain.crt;
  ssl_certificate_key  /data/certs/domain.key; 
 }

Gardez à l'esprit que s'il s'agit d'un certificat auto-signé, le navigateur vous avertira de façon très déplorable.

22
brupm

En s'appuyant sur les commentaires de jberger, une configuration qui devrait fonctionner serait:

server {
    listen *:80;
    server_name example.com;
}

server {
    listen              *:443 ssl;
    server_name         example.com;
    ssl_certificate     /etc/ssl/certs/example.com.cert;
    ssl_certificate_key /etc/ssl/private/example.com.key;
    return 301 http://$server_name$request_uri;
}
13
krd
    if ($Host = 'foo.com') {
        rewrite  ^/(.*)$  http://www.foo.com$1  permanent;
    }
0
coulix