我正在运行带有 nginx 的 debian squeeze 网络服务器,但无法让 SSL 工作。我收到的错误不是来自 apache,而是来自客户端网络浏览器,显示“连接超时错误”
我从 StartSSL 购买了 SSL 证书,当它不起作用时,我尝试生成自己的证书以排除故障。两次都产生了相同的错误,都没有起作用,而且我的 nginx 日志没有显示任何内容。
我的 SSL 配置如下:
server {
listen 443 default_server ssl;
server_name tarror.org www.tarror.org;
ssl on;
ssl_certificate /srv/ssl/nginx.pem;
ssl_certificate_key /srv/ssl/nginx.key;
root /wdata/tarror.org;
index index.php index.htm index.html;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /wdata/tarror.org$fastcgi_script_name;
include fastcgi_params;
}
}
答案1
在您的 Web 服务器的防火墙中打开端口 443。
答案2
我首先尝试删除该ssl on;
行,因为自 nginx 以来该行已被弃用1.15.0
。ssl
在该listen
行中添加内容会执行相同的操作。
来自 Nginx 文档:
Syntax: ssl on | off;
This directive was made obsolete in version 1.15.0.
The ssl parameter of the listen directive should be used instead.
本文对我在 Ubuntu 上使用自签名证书很有帮助:
http://www.networkinghowtos.com/howto/configure-nginx-to-use-ssl-certificates/
这显示了基于不同版本的 nginx 的 SSL 所需的配置语法。
确保 Nginx 使用 监听端口 443。netstat -an
同时确保没有任何可能阻止端口 443 的防火墙/iptables 规则。