nginx ssl子域错误

Posted

技术标签:

【中文标题】nginx ssl子域错误【英文标题】:nginx ssl subdomain error 【发布时间】:2016-02-04 02:20:39 【问题描述】:

您好,我的子域有 2 个问题

我的 ssl 不适用于 sub.domain.com,但适用于 domain.com

phpmyadmin 给我一个空白页

我已经测试了很多配置,但总是出现“未指定输入文件”错误或 502 bad getaway 错误或空白页

我的文件夹是这样的

/www/
  - /website/ <- first site
  - /tools/ <- subdomain
     - phpmyadmin (symlink of /usr/share/phpmyadmin)

配置

server 
        listen 80;
        listen 443 ssl;

       ssl on;
       ssl_certificate /www/website/ssl/domain_com.pem;
       ssl_certificate_key /www/website/ssl/domain_com.key;

       ssl_session_timeout 5m;

        ssl_protocols SSLv2 TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

        disable_symlinks off;
        root /www/tools/;
        server_name configuration.domain.com;
        index index.php index.html index.htm;

location /phpmyadmin 
    index index.php index.htm;
    root /usr/share;


location ~* \.php$ 
    include fastcgi_params;
    fastcgi_pass   unix:/var/run/php5-fpm.sock;


我在 Debian 7,nginx 1.8

谢谢你

【问题讨论】:

错误日志中有什么内容吗? 【参考方案1】:

你应该根据你设置的位置设置root,因为位置不会附加到那个位置,所以你应该修复这个块:

location /phpmyadmin 
    index index.php index.htm;
    root /usr/share/phpmyadmin;

【讨论】:

【参考方案2】:

请确认您是否拥有单域证书、通配符证书或多域证书。

如果您使用的是单个域证书(例如 abc.com),它将不适用于 xyz.abc.com 或 123.abc.com。它仅适用于 abc.com

如果您购买了通配符证书,请检查确认子域是一级子域还是二级子域。通配符证书仅保护第一级子域。所以 *.abc.com 证书适用于 123.abc.com, xyz.abc.com 。但它不适用于 123.xyz.abc.com。

如果您购买了多域证书,请检查子域 URL 是否作为 SAN 添加到证书中。

【讨论】:

以上是关于nginx ssl子域错误的主要内容,如果未能解决你的问题,请参考以下文章

自定义子域上的 AppEngine“Google 管理的自动续订”SSL 证书错误地路由内容

Phpmyadmin 作为 Nginx 中的子域

Apache 提供错误的 SSL-Cert

使用SSL配置nginx反向代理时出现400错误请求错误。

nginx 和 SSL:502 错误网关

子域验证中的 Gitlab ssl 失败