Я успешно создал несколько сертификатов LE SSL, используя это руководство.
Однако, когда я обновил конфигурацию nginx, чтобы использовать сертификаты и перенаправить весь трафик порта 80 на 443. http успешно перенаправляет на https, сайт не загружается. Браузер обнаруживает, что у меня есть действующий сертификат, но сообщает, что у меня нет безопасного соединения. Это то, что у меня есть /var/log/nginx/error.log
:
2016/03/08 00:11:49 [error] 7301#0: *14 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking, client: 55.555.55.555, server: 0.0.0.0:443
Ошибка говорит, что у меня не определен сертификат SSL, несмотря на то, что я это делаю. Это мой конфиг:
server {
listen 443 ssl;
server_name cooldomain.pizza www.cooldomain.pizza
ssl_certificate /etc/letsencrypt/live/cooldomain.pizza/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cooldomain.pizza/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
root /home/ubuntu/www/cooldomain-pizza;
index index.php index.html index.htm;
server_name cooldomain.pizza www.cooldomain.pizza;
charset utf-8;
location / {
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
location ~ \.php$ {
try_files $uri $uri/ =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Я запускаю Ubuntu 14.04 с Nginx 1.4.6.
Есть идеи, что происходит? Мне пришлось откатить SSL-версию сайта и вернуться к работе только с портом 80.
Кажется, вам не хватает точки с запятой в конце директивы server_name. Я подозреваю, что из-за этого следующая строка интерпретируется как часть директивы server_name, а не как новая директива.
Я была такая же проблема. Помогло поставить
default_server
в директиву прослушивания.