NGINX SSL 连接错误

NGINX SSL 连接错误

我已将 SSL 证书添加到我的服务器。(Nginx 运行 Passenger 和 Rails)。

我创建了一个 CSR,上传到 GoDaddy,下载了密钥。在 /srv/ssl 中我有

www.mydomain.com.crt
www.mydomain.com.key

我的 nginx 版本:

nginx -V
nginx version: nginx/1.2.6
built by gcc 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module --with-cc-opt=-Wno-error --with-pcre=/tmp/root-passenger-27798/pcre-8.31 --add-module=/home/deploy/.rvm/gems/ruby-1.9.3-p392/gems/passenger-3.0.19/ext/nginx

我将其添加到我的 nginx.conf 文件中:

server {
    listen       443;
    server_name  localhost;

    ssl_certificate    /srv/ssl/www.mydomain.com.crt;
    ssl_certificate_key  /srv/ssl/www.mydomain.com.key;

    location / {
        root   html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

除了两条 ssl 线和端口为 443 而不是 80 之外,该服务器块与其上方提供常规 http 服务的服务器块相同。

当我使用

listen 443 ssl; 并取消注释此内容:

#ssl_session_timeout 5分钟;

#    ssl_protocols  SSLv2 SSLv3 TLSv1;
#    ssl_ciphers  HIGH:!aNULL:!MD5;
#    ssl_prefer_server_ciphers   on;

然后我收到 SSL 已过期警告。

当我重新评论这些并只使用

listen 443 ssl;

然后我收到一个错误,但是当我访问

https://www.mydomain.com/login使用 www,我在 Chrome 中看到一个绿色锁,但页面却是 404。这是否意味着我为“www”配置了 SSL,但没有为非 www 配置?

答案1

您的server_name设置为localhost。您必须将您的域名放在那里(www.domain.com,如果您的证书有 www. 前缀),以便 nginx 可以在 SSL 协商期间选择正确的 vhost。

相关内容