gpt4 book ai didi

amazon-web-services - 如何处理 SSL 证书以在 NGINX 服务器上运行的 Web 应用程序中实现 WhiteLabel 选项

转载 作者:行者123 更新时间:2023-12-03 14:47:57 24 4
gpt4 key购买 nike

我正在开发一个 Web 应用程序。

我的应用程序在子域 app.mydomain.com 上运行

我需要为我的应用程序添加 WhiteLabel。我要求我的客户通过 CNAME 指向他们自己的网站到我的应用程序。
design.customerwebsite.com指向 app.mydomain.com
这是我试图解决的问题。

我在 /etc/nginx/sites-available 中创建了一个新文件命名为 customerwebsite.com向文件添加了符号链接(symbolic link)。

我使用 certbot 安装了 SSL使用以下命令。
sudo certbot --nginx -n --redirect -d design.customerwebsite.com
这是我的 NGINX conf 文件 customerwebsite.com 的代码

server
{

server_name www.customerwebsite.com;
return 301 $scheme://customerwebsite.com$request_uri;
}


server {

# proxy_hide_header X-Frame-Options;

listen 80;
listen 443;

server_name design.customerwebsite.com;

ssl_certificate /etc/letsencrypt/live/design.customerwebsite.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/design.customerwebsite.com/privkey.pem;


root /opt/bitnami/apps/myapp/dist;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_hide_header X-Frame-Options;
proxy_pass http://localhost:3000;
}

proxy_set_header X-Forwarded-Proto $scheme;
if ( $http_x_forwarded_proto != 'https' )
{
return 301 https://$host$request_uri;
}


}

我可以在 https://design.customerwebsite.com 上成功运行我的网络应用程序

但是 SSL 证书显示它指向 app.mydomain.com并表现出不安全感。

我的 app.mydomain.com具有来自 Amazon ACM 的 SSL 证书,该证书通过负载均衡器附加。

解决这个问题的方法应该是什么?

最佳答案

有两种解决方案
1-将 ssl 证书添加到负载平衡:您需要请求具有所有受支持的 DNS 名称(app.mydomain.com 和 design.customerwebsite.com)/的证书,并且您需要使用 Route53 管理 customerwebsite.com 域。我认为在你的情况下这是不可能的。

2- 不要在负载均衡器上使用 ssl:对于这个选项,我们不会在负载均衡器上终止 ssl,但是,它会被传递给 nginx 来处理。您的负载均衡器配置应如下所示

enter image description here

您需要生成一个包含两个域的新 ssl 证书


sudo certbot --nginx -n --redirect -d app.mydomain.com -d *.mydomain.com -d design.customerwebsite.com -d *.customerwebsite.com


Nginx 配置
server
{
server_name www.customerwebsite.com;
return 301 $scheme://customerwebsite.com$request_uri;
}


server {
listen 80 default_server;
server_name design.customerwebsite.com;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl default_server;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_certificate /etc/letsencrypt/live/design.customerwebsite.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/design.customerwebsite.com/privkey.pem;

server_name design.customerwebsite.com;
root /opt/bitnami/apps/myapp/dist;

location / {
resolver 127.0.0.11 ipv6=off;

proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https
proxy_set_header X-Real-IP $remote_addr;
proxy_hide_header X-Frame-Options;
proxy_pass http://localhost:3000;
}
}

关于amazon-web-services - 如何处理 SSL 证书以在 NGINX 服务器上运行的 Web 应用程序中实现 WhiteLabel 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60264366/

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