Назад | Перейти на главную страницу

Установка сертификатов SSL с nginx на Amazon EC2

Я, наконец, получил сертификат от авторитета и изо всех сил пытаюсь заставить все работать. Я создал соответствующий комбинированный сертификат (личный + промежуточный + корневой), и nginx указывает на него. Я получил эластичный IP-адрес и подключил его к своему экземпляру EC2. Мои записи DNS указывают на этот IP-адрес. Но когда я указываю браузеру имя хоста, я получаю стандартный бит «Connection Untrusted» с ssl_error_bad_cert_domain. Порт 443 открыт - я могу попасть на сайт по https, если проигнорирую предупреждение. Странно то, что в технических деталях он перечисляет домен, к которому я пытался получить доступ, как действительный!

Когда я пытаюсь выполнить диагностику с помощью сайтов тестирования SSL, они даже не обнаруживают сертификат!

Что мне здесь не хватает?

домен - yanlj.coinculture.info. Обратите внимание: у меня есть coinculture.info, запущенный на домашнем сервере без выделенного IP-адреса, и у меня такая же проблема, но я перенесу его в тот же экземпляр EC2, как только разберусь с этим. Я думал, что эластичный IP-адрес решит все, но этого не произошло.

Конфигурация 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;
}

и результаты 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; emailAddress=webmaster@coinculture.info * 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.

я вижу это coinculture.info имеет пять авторитетных DNS-серверов. Трое из них отказываются разрешить yanlj.coinculture.info, а двое других дают мне IP-адрес 184.168.221.12. Это не похоже на IP-адрес EC2. Этот IP-адрес зарегистрирован в GoDaddy, и похоже, что перед этим адресом стоит сломанный брандмауэр. Я получаю тайм-аут при попытке подключиться к порту 443 на нем.

  • Сервер имен: NS1.WORDPRESS.COM
  • Сервер имен: NS2.WORDPRESS.COM
  • Сервер имен: NS3.WORDPRESS.COM
  • Сервер имен: NS15.DOMAINCONTROL.COM
  • Сервер имен: NS16.DOMAINCONTROL.COM