gpt4 book ai didi

ssl - nginx - 无法为第二个站点使用(不同的)证书

转载 作者:太空宇宙 更新时间:2023-11-03 14:35:15 30 4
gpt4 key购买 nike

我最初将 certbot 用于我的第一个站点(默认)的证书。一切都很好,并且在过去的 6 个月里效果很好。最近我试图将另一个站点添加到我的服务器,并且在我尝试对其进行认证时出现问题。 (它在 http 上运行良好 - 使用端口 80)。

我按照与之前完全相同的步骤使用 certbot 生成 ssl-cert(尽管更改了名称),但我没有遇到任何问题。

但是现在当我将 site2 的证书添加到时,它会重定向到默认值并在 url-bar 中显示为不安全。如果我尝试使用默认设置,它可以正常工作并且仍然经过认证。

我确定这是 site2 证书的问题,但我不确定问题出在哪里?

我原来的网站“默认”是一个 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;
}

}

site2的代码;

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 successful

params.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-bar 中的“不安全”,声明 site2 的证书已默认颁发

最佳答案

server_name _ 不应在 ssl 主机上使用,除非只有一个虚拟主机;您应该在每个服务器部分中设置显式名称。

关于ssl - nginx - 无法为第二个站点使用(不同的)证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48568790/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com