Problema que atende a vários certificados SSL via nginx

1

Eu tenho dois domínios com SSL certs em uma instância nginx. Estou tentando redirecionar o http para https e remover o nome do host www em ambos os domínios, ou seja, o link redireciona para link

O que eu tenho no momento, link redireciona bem e emite o certificado correto, no entanto link emite o certificado SSL de site2.com e não redireciona sem www. O site2 funciona bem para todos os redirecionamentos e questões dos certificados corretos. Eu acho que tem a ver comigo usando "padrão" na configuração SSL para site2, no entanto, se eu removê-lo ambos os sites, em seguida, retornar erros de conexão recusada.

Aqui estão as configurações

/ etc / nginx / sites-available / site1

upstream site1.com {
    server unix:/home/site1.com/site1.com.sock;
}


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

server {
    listen 443 ssl;
    server_name www.site1.com;
    return 301 https://site1.com$request_uri;
}


server {
    listen 80;
    server_name site1.com;

    # SSL configuration

    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    include snippets/ssl-site1.com.conf;

/ etc / nginx / sites-available / site2

upstream site2 {
    server unix:/home/site2/site2.sock;
}


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

server {
    listen 443 ssl;
    server_name www.site2.com;
    return 301 https://site2.com$request_uri;
}


server {
    listen 80;
    server_name site2.com;

    # SSL configuration

    listen 443 ssl default http2;
    listen [::]:443 ssl default http2;
    include snippets/ssl-site2.com.conf;
    include snippets/ssl-params.conf;
    
por KingFu 13.03.2017 / 09:54

1 resposta

3

Você não possui certificados definidos para os blocos de servidor www.site1.com e www.site2.com , então nginx provavelmente está usando o certificado que foi carregado primeiro na configuração.

Seus certificados são presumivelmente definidos nos arquivos snippets/ssl-site1.com.conf e snippets/ssl-site2.com.conf .

Supondo que seus certificados sejam válidos para a variante www. do nome de domínio, essas instruções precisam ser incluídas nos outros blocos de servidor.

Por exemplo:

server {
    listen 443 ssl;
    server_name www.site1.com;
    include snippets/ssl-site1.com.conf;
    return 301 https://site1.com$request_uri;
}
    
por 13.03.2017 / 10:53

Tags