Я, наконец, получил сертификат от авторитета и изо всех сил пытаюсь заставить все работать. Я создал соответствующий комбинированный сертификат (личный + промежуточный + корневой), и 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 на нем.