nginx com vários servidores e ssl cert, use sempre o mesmo ssl

4

Eu tenho um ubuntu hardy com a versão nginx: nginx / 0.5.33

Eu tenho vários servidores e eles estão funcionando perfeitamente na porta 80.

Agora, alguns deles eu quero servir usando SSL na porta 443, e cada um deles tem seu próprio certificado SSL.

O problema é que todo domínio está usando o mesmo certificado ssl, e um erro aparece no navegador dizendo um certificado ssl de incompatibilidade.

Tenho certeza de que todos os certificados são válidos e estão corretos, os caminhos estão corretos. Se eu servir apenas UM domínio, o certificado SSL está OK, então todos os arquivos estão OK.

Por que o nginx está sempre usando o mesmo certificado ssl para todas as configurações de servidor?

Aqui estão dois exemplos, se ambos estiverem ativos, será necessário sempre o ssl para o domínio1, se eu remover o domínio1, o domínio2 com o ssl funcionar bem com o arquivo ssl correto.

obrigado,

m.

arquivo nginx.conf:

user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
worker_connections  1024;
}

http {
include       /etc/nginx/mime.types;
default_type  application/octet-stream;

access_log  /var/log/nginx/access.log;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;
tcp_nodelay        on;

gzip  on;

include /etc/nginx/conf.d/*.conf;
}

arquivo domain1.conf:

server {

        listen 443;

        server_name domain1.montx.com;
        root /etc/nginx/sites-available/domain1;
        access_log /etc/nginx/sites-available/domain1/log/nginx.log;
        error_page 500 502 503 504 /500.html;
        client_max_body_size 50M;

        ssl on;
        ssl_certificate /etc/nginx/conf.d/domain1.crt;
        ssl_certificate_key /etc/nginx/conf.d/domain1.key;

         location / {

                auth_basic "Restricted";
                auth_basic_user_file  domain1_htpasswd;
                 }
}

arquivo domain2.conf:

upstream thin_domain2 {
    server   unix:/tmp/thin_domain2.0.sock;
    server   unix:/tmp/thin_domain2.1.sock;
    server   unix:/tmp/thin_domain2.2.sock;
}


server {

    listen 443;
    ssl on;
    ssl_certificate /etc/nginx/conf.d/domain2.crt;
    ssl_certificate_key /etc/nginx/conf.d/domain2.key;




    server_name domain2.montx.com;
    root /u/apps/domain2/current/public;
    access_log /u/apps/domain2/shared/log/nginx.log;
    error_page 500 502 503 504 /500.html;
    client_max_body_size 50M;

    # First rewrite rule for handling maintenance page
    if (-f $document_root/system/maintenance.html) {
            rewrite ^(.*)$ /system/maintenance.html last;
            break;
    }

    location / {
            index index.html index.htm;

            # Forward information about the client and host
            # Otherwise our Rails app wouldn't have access to it
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_max_temp_file_size 0;
            # Directly serve static content
            location ~ ^/(images|javascripts|stylesheets)/ {
                    expires 10y;
            }
            if (-f $request_filename) {
                    break;
            }

            # Directly serve cached pages
            if (-f $request_filename.html) {
                    rewrite (.*) $1.html break;
            }

            # Otherwise let Thin handle the request
            if (!-f $request_filename) {
                    proxy_pass http://thin_domain2;
                    break;
            }
    }
}
    
por mongeta 03.08.2010 / 11:49

2 respostas

5

Você precisa atribuir um endereço IP individual para cada certificado SSL que deseja usar.

link

link

    
por 03.08.2010 / 12:11
0

Adicione ligações de endereço IP para cada bloco do seu servidor:

listen yourIPaddress:443 ssl;
    
por 06.12.2017 / 16:07

Tags