Nginx 无法识别 Let's Encrypt 证书

Nginx 无法识别 Let's Encrypt 证书

我成功创建了一些 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;
  }
}

我正在运行带有 Nginx 1.4.6 的 Ubuntu 14.04。

知道发生了什么吗?我不得不回滚网站的 SSL 版本并恢复为仅使用端口 80。

答案1

您似乎在 server_name 指令末尾缺少一个分号。我怀疑这会导致以下行被解释为 server_name 指令的一部分,而不是新指令。

答案2

我也遇到了同样的问题。它帮助我

default_server

进入聆听指令。

相关内容