Bonjour,
J'ai un serveur dont les DNS sont :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
@ 10800 IN A 11.22.33.44
cloud 10800 IN A 11.22.33.44
blog 10800 IN A 11.22.33.44
www 10800 IN CNAME exemple.com.
Sur le serveur 11.22.33.44 (Ubuntu 14.04), j'ai nginx :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
upstream php-handler {
    server 127.0.0.1:9000;
    #server unix:/var/run/php5-fpm.sock;
}

# redirection ssl
server {
    listen          80;
    server_name     blog.exemple.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen          80;
    server_name     exemple.com www.exemple.com;
    return 301 https://$server_name$request_uri;
}

#---------------------------#
# Exemple.com
#---------------------------#

server {
    listen          443 ssl;
    server_name     exemple.com www.exemple.com;
    index           index.html index.htm;
    charset         utf-8;
        error_page 401 403 404 /404.html;
## SSL settings
    ssl_certificate           /etc/letsencrypt/live/exemple.com/fullchain.pem;
    ssl_trusted_certificate   /etc/letsencrypt/live/exemple.com/chain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/exemple.com/privkey.pem;
    ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers               "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK";
    ssl_prefer_server_ciphers on;
    ssl_session_cache         shared:SSL:10m;
    ssl_session_timeout       10m;
    ssl_ecdh_curve            secp384r1;

    location / {
        proxy_pass         http://192.168.0.11/;
    }

}

# blog
server {
    listen          443 ssl;
    server_name     blog.exemple.com;
    index           index.html index.htm;
    charset         utf-8;
        error_page 401 403 404 /404.html;
## SSL settings
    ssl_certificate           /etc/letsencrypt/live/exemple.com/fullchain.pem;
    ssl_trusted_certificate   /etc/letsencrypt/live/exemple.com/chain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/exemple.com/privkey.pem;
    ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers               "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK";
    ssl_prefer_server_ciphers on;
    ssl_session_cache         shared:SSL:10m;
    ssl_session_timeout       10m;
    ssl_ecdh_curve            secp384r1;

    location / {
        proxy_pass         http://192.168.0.11;
    }

}
Sur le serveur, j'ai installé une machine virtuelle 192.168.0.11 avec nginx configurer comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
server{
    listen          80;
    server_name     exemple.com www.exemple.com;
    root /usr/share/nginx/html;
        index index.html index.htm;
    location / {
        try_files $uri $uri/ =404;
        }
}

#
# blog
#
server{
    listen          80;
    server_name     blog.exemple.com;
    root /usr/share/nginx/html/blog;
        index index.html index.htm;

        location / {
                try_files $uri $uri/ =404;
        }
}
Le soucis que je rencontre :
  • exemple.com et www.exemple.com sont bien rediriger en https
  • blog.exemple.com apparaît bien rediriger en https dans la barre d'adresse, mais c'est la page d'index de exemple.com qui s'affiche!!


Une âme charitable pourrait-elle m'expliquer ?
Merci,
Christophe

Edit : Une solution (peut-être pas la seule ni la meilleure)
Tout d'abord création du fichier /etc/nginx/conf.d/proxy.conf
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
proxy_redirect          off;
proxy_set_header        Host            $host;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size    10m;
client_body_buffer_size 128k;
client_header_buffer_size 64k;
proxy_connect_timeout   90;
proxy_send_timeout      90;
proxy_read_timeout      90;
proxy_buffer_size   16k;
proxy_buffers       32   16k;
proxy_busy_buffers_size 64k;
Ensuite j'ai déplacé le blog de /usr/share/nginx/html vers /var/www/blog avec modification du proxy_pass.
Test : un beau 403...
Modification des droits
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
chown www-data:www-data /var/www 
chmod 744 /var/www
Ça marche!
À force d'échouer, on finit par réussir.
Moralité, plus on échoue, plus on a de chance de réussir