Adicione o certificado SSL curinga existente ao Nginx do Amazon EC2

1

Eu estou tentando adicionar um certificado SSL curinga pré-existente a uma única instância do Ubuntu no Amazon EC2, onde o servidor é Nginx, e eu executo um único subdomínio.

Eu tenho - do fornecedor original que fornece o certificado - arquivos chamados private.key, selfsigned.crt e ssl-shared-cert.inc. Eu carreguei esses arquivos para o EC2, em / etc / nginx / ssl (que é uma nova pasta que criei). Eu usei anteriormente os mesmos arquivos no Heroku, embora o processo pareça ser bastante específico lá. Eles também são usados em nosso domínio principal ( link ), mas eu não estava envolvido em configurá-los lá, pois acredito que nosso fornecedor de hospedagem fez isso por nós.

ssl-shared-cert é assim:

SSLEngine On
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile "/path/to/selfsigned.crt"
SSLCertificateKeyFile "/path/to/private.key"

Na minha instância do EC2, mudei a configuração do meu site para:

server {
    listen 8080;
    listen 443 ssl;
    server_name subdomainurl;
    ssl_certificate /etc/nginx/ssl/selfsigned.crt;
    ssl_certificate_key /etc/nginx/ssl/private.key;
    root path;
    ...
}

Quando executo sudo nginx -t , obtenho o seguinte:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Então eu corri sudo service nginx restart , e isso retornou OK. Primeiro eu verifiquei se a versão HTTP ainda funcionava, e funciona, mas o HTTPS ainda não funciona. Quando executo o curl, ele retorna:

* SSL certificate problem: Invalid certificate chain
* Closing connection 0
curl: (60) SSL certificate problem: Invalid certificate chain
More details here: http://curl.haxx.se/docs/sslcerts.html

Onde eu posso ir daqui?

    
por Jonathan Stegall 25.02.2016 / 00:06

2 respostas

1

Se o certificado não for realmente auto-assinado, há duas possibilidades em que posso pensar. A primeira é que o curl não possui o pacote de autoridades confiáveis (o Debian mantém um conjunto de certificados confiáveis em um pacote chamado ca-certificates ). Se esse for o caso, nenhum site https funcionará com ele. Você pode verificar se sua onda está funcionando com outros sites?

Se a curvatura estiver funcionando, o que você está perdendo é provavelmente a cadeia de certificados que o assinante deve ter fornecido, vinculando a assinatura em seu certificado a um dos principais certificados confiáveis. Das instruções aqui você deve adicionar a cadeia de certificados (com cada certificado no formato PEM) ao final de selfsigned.crt (o próprio certificado do servidor deve ser o primeiro).

    
por 25.02.2016 / 18:56
1

O que o DerkK disse sobre certificados auto-assinados é absolutamente correto. Você precisa de um certificado diferente. Eu tenho um tutorial sobre Vamos Criptografar e Nginx aqui - é relativamente simples.

    
por 25.02.2016 / 00:32