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

Сертификат Let's Encrypt не распознается Nginx

Я успешно создал несколько сертификатов 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

в директиву прослушивания.