![当我访问我的网站时,我获得了其他网站的 tls 证书](https://linux22.com/image/678607/%E5%BD%93%E6%88%91%E8%AE%BF%E9%97%AE%E6%88%91%E7%9A%84%E7%BD%91%E7%AB%99%E6%97%B6%EF%BC%8C%E6%88%91%E8%8E%B7%E5%BE%97%E4%BA%86%E5%85%B6%E4%BB%96%E7%BD%91%E7%AB%99%E7%9A%84%20tls%20%E8%AF%81%E4%B9%A6%20.png)
当我使用 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 很容易做到。
请注意,虽然这是一个问题,但它可能是也可能不是您偶尔遇到的问题的根本原因。尝试一下,如果再次发生,请报告。