我成功创建了一些 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
进入聆听指令。