我最初使用certbot作为我的第一个站点(默认)的证书。一切都很好,在过去的6个月里它运行得很好。最近我试图添加另一个站点到我的服务器,当我试图认证它时出现了问题。(它在http上运行良好-使用端口80)。
我遵循了之前使用certbot生成ssl-cert的完全相同的步骤(尽管更改了名称),并且没有任何问题。
但是,现在当我将site2证书添加到时,它会重定向到默认值,并在url栏中显示为不安全。如果我尝试go to default,它工作得很好,并且仍然是经过认证的。
我确定这是site2证书的问题,但我不确定问题出在哪里?
我原来的网站"default“是一个php脚本。然而,第二个站点"site2“是一个html脚本。
默认的代码;
server {
listen 80 default_server ;
listen [::]:80 default_server ipv6only=on;
server_name default.com www.default.com;
return 301 https://www.default.com$request_uri;
}
server{
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
include /etc/nginx/snippets/ssl-default.com.conf;
include /etc/nginx/snippets/ssl-params.conf;
location ~ /.well-known {
allow all;
}
root /var/www/default.com/site;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}站点2的代码;
server {
listen 80;
listen [::]:80 ;
server_name site2.com www.site2.com;
return 302 https://www.site2.com$request_uri;
}
server{
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name _;
include /etc/nginx/snippets/ssl-site2.com.conf;
include /etc/nginx/snippets/ssl-params.conf;
location ~ /.well-known {
allow all;
}
root /var/www/site2.com/;
index index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ /\.ht {
deny all;
}
}sudo nginx -t输出;
[warn] "ssl_stapling" ignored, issuer certificate not found
nginx: [warn] conflicting server name "_" on 0.0.0.0:443, ignored
nginx: [warn] conflicting server name "_" on [::]:443, ignored
nginx: [warn] conflicting server name "default.com" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "www.default.com" on 0.0.0.0:80,
ignored
nginx: [warn] conflicting server name "default.com" on [::]:80, ignored
nginx: [warn] conflicting server name "www.default.com" on [::]:80, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulparams.conf包含;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
# disable HSTS header for now
#add_header Strict-Transport-Security "max-age=63072000; includeSubDomains;
preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;ssl.site2.com.conf有私钥和全链的位置。(格式和位置与默认相同,只是更改了名称。)
*检查url栏中的"not-secure“,指出site2的证书已默认颁发
发布于 2018-08-03 17:38:17
除非只有一个虚拟主机,否则不应该在ssl主机上使用server_name _;您应该在每个服务器部分中设置显式名称。
发布于 2021-11-13 07:43:59
最有可能的情况是,您有2个或更多的配置文件,在这些文件中,您在server_name中为同一端口设置了一个值。正如我所看到的,其中一个文件是default。尝试检查现有站点的/etc/nginx/sites-enabled。
尝试从两个::443配置中删除行server_name _;,它应该可以工作。
https://stackoverflow.com/questions/48568790
复制相似问题