Instalando certificados SSL com nginx no Amazon EC2

2

Eu finalmente consegui um certificado de uma autoridade e estou lutando para fazer as coisas funcionarem. Eu criei o certificado combinado apropriado (pessoal + intermediário + raiz) e o nginx está apontando para ele. Eu tenho um IP elástico e o conecto à minha instância do EC2. Meus registros DNS apontam para esse IP. Mas quando eu aponto o navegador para o hostname, recebo o bit padrão "Connection Untrusted", com ssl_error_bad_cert_domain. A porta 443 está aberta - posso acessar o site por meio de https se eu ignorar o aviso. O mais estranho é que, sob detalhes técnicos, ele lista o domínio que tentei acessar como válido!

Quando tento diagnosticar com sites de teste SSL, eles nem detectam um certificado!

O que estou perdendo aqui?

O domínio

é yanlj.coinculture.info. Note que eu tenho coinculture.info rodando em um servidor doméstico sem um IP dedicado e tenho o mesmo problema, mas eu vou estar movendo isso para a mesma instância EC2 assim que eu descobrir isso. Eu pensei que o IP elástico iria resolver as coisas, mas não tem

Configuração do Nginx:

server {
  listen 443;
  server_name localhost;

  ssl                  on;
  ssl_certificate      /home/ubuntu/certs/startssl/ssl-unified.crt;
  ssl_certificate_key  /home/ubuntu/certs/startssl/ssl.key;

  keepalive_timeout    70;

  #ssl_session_timeout  5m;

  ssl_protocols  SSLv2 SSLv3 TLSv1;
 #ssl_ciphers  HIGH:!aNULL:!MD5;
 #ssl_prefer_server_ciphers   on;

  root /home/ubuntu/programming/YanlJ;
  index index.php index.html;

      location / {
        #try_files $uri $uri/ /index.php;  # this line was causing the index.php file to be loaded twice...
      }

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

                # With php5-cgi alone:
                #fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi.conf;
        }

  try_files $uri $uri.php $uri.html =404;
}

e resultados de curl -kv https:// ELASTIC_IP:

* Rebuilt URL to: https:// 54.186.114.3/ * Hostname was NOT found in DNS cache * Trying 54.186.114.3... * Connected to 54.186.114.3 (54.186.114.3) port 443 (#0) * SSLv3, TLS handshake, Client hello (1): * SSLv3, TLS handshake, Server hello (2): * SSLv3, TLS handshake, CERT (11): * SSLv3, TLS handshake, Server key exchange (12): * SSLv3, TLS handshake, Server finished (14): * SSLv3, TLS handshake, Client key exchange (16): * SSLv3, TLS change cipher, Client hello (1): * SSLv3, TLS handshake, Finished (20): * SSLv3, TLS change cipher, Client hello (1): * SSLv3, TLS handshake, Finished (20): * SSL connection using TLSv1.0 / DHE-RSA-AES256-SHA * Server certificate: * subject: C=CA; ST=Ontario; L=Guelph; O=Ethan Buchman; CN=blog.coinculture.info; [email protected] * start date: 2014-05-29 15:10:52 GMT * expire date: 2016-05-29 10:44:27 GMT * issuer: C=IL; O=StartCom Ltd.; OU=Secure Digital Certificate Signing; CN=StartCom Class 2 Primary Intermediate Server CA * SSL certificate verify ok.

    
por Ethan 31.05.2014 / 17:09

1 resposta

1

Eu vejo que coinculture.info tem cinco servidores DNS autoritativos. Três deles se recusam a resolver yanlj.coinculture.info e os outros dois me fornecem o endereço IP 184.168.221.12 . Isso não se parece com um endereço IP do EC2. Esse endereço IP está registrado no GoDaddy e parece que há um firewall quebrado na frente desse endereço. Eu recebo tempo limite ao tentar conectar-me à porta 443.

  • Servidor de nomes: NS1.WORDPRESS.COM
  • Servidor de nomes: NS2.WORDPRESS.COM
  • Servidor de nomes: NS3.WORDPRESS.COM
  • Servidor de nomes: NS15.DOMAINCONTROL.COM
  • Servidor de nomes: NS16.DOMAINCONTROL.COM
por 31.05.2014 / 19:45