当我访问我的网站时,我获得了其他网站的 tls 证书

当我访问我的网站时,我获得了其他网站的 tls 证书

当我使用 https 访问我的网站时遇到一个奇怪的问题......

我无法追踪这种情况发生的频率,但有时 T 会获得另一个网站的 TLS 证书......浏览器会警告我该证书是假的。但是我使用“让我们加密”设置证书,应该不会有任何问题......

我记得在我将 TLS 证书设置到我的域之前发生过一次,所以让我们加密它可能不是问题的原因,但我想知道是什么原因导致的?

我希望你们能帮助我!提前谢谢大家。

编辑: 这是我的 nginx 配置:

# Redirect www to non-www and http to https
#
server {
    server_name doctorice.co.il www.doctorice.co.il;
    return 301 https://doctorice.co.il$request_uri;
}

server {
    listen 443;
    server_name www.doctorice.co.il;
    ssl_certificate      /etc/letsencrypt/live/doctorice.co.il/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/doctorice.co.il/privkey.pem;
    return 301 https://doctorice.co.il$request_uri;
}

# The actual server configuration goes here:
#
server {
    listen       443 ssl;
    server_name  doctorice.co.il;

    ssl_certificate      /etc/letsencrypt/live/doctorice.co.il/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/doctorice.co.il/privkey.pem;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

    charset utf-8;

    root   /var/www/doctorice/public;
    index index.php index.html index.htm;

    # Redirecting all requests to index.php and enabling rewrites.
    #
    location / {
        try_files $uri $uri/ @rewrites;
    }

    location @rewrites {
        rewrite ^(.*) /index.php?p=$1 last;
    }

    # Making sure enyone can access .well-known directory
    # for auto-renewal of the ssl sertificates. Do not remove!
    #
    location ~ /.well-known {
        allow all;
    }

    # Redirectiong 404's to craft cms.
    #
    error_page  404              /index.php;

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

    # Pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

为了获取证书,我克隆了“lets encrypt” repo 并运行:

./letsencrypt-auto certonly --standalone

然后我只是按照说明操作。

该网站的链接是http://doctorice.co.il/

答案1

您的证书仅适用于根域,不包括 www 域。您有一个服务器在 www 域上监听 https 连接,该服务器使用的证书对 www 域无效,这会导致证书警告。当您访问https://www.doctorice.co.il/

解决方案是获取一个包含根域名和 www 域名的证书,或者为 www 域名颁发第二个证书。我建议一个证书包含两个域名,使用 Let's Encrypt 很容易做到。

请注意,虽然这是一个问题,但它可能是也可能不是您偶尔遇到的问题的根本原因。尝试一下,如果再次发生,请报告。

相关内容