Ani*_*udh 6 nginx ssl-certificate multi-tenant amazon-web-services aws-acm
我正在开发一个 Web 应用程序。
我的应用程序在子域上运行 app.mydomain.com
我需要为我的应用贴上白标。我要求我的客户通过 CNAME 将他们自己的网站指向我的应用程序。
design.customerwebsite.com 指着 app.mydomain.com
这是我试图解决这个问题的方法。
我创建了一个/etc/nginx/sites-available名为为文件customerwebsite.com
添加符号链接的新文件。
我使用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;
}
}
Run Code Online (Sandbox Code Playgroud)
我能够成功地运行我的网络应用程序 https://design.customerwebsite.com
但是 SSL 证书显示它被指向app.mydomain.com并显示不安全。
我app.mydomain.com有来自 Amazon ACM 的 SSL 证书,它通过负载均衡器附加。
解决这个问题的方法应该是什么?
有两种解决方案:1-将 ssl 证书添加到负载平衡:您需要请求包含所有受支持的 DNS 名称(app.mydomain.com 和 design.customerwebsite.com)的证书/并且您需要管理 customerwebsite.com域与 Route53。我认为在你的情况下这是不可能的。
2- 不要在负载均衡器上使用 ssl:对于此选项,我们不会终止负载均衡器上的 ssl,但是,它将传递给 nginx 来处理。您的负载均衡器配置应该如下所示
您需要生成一个包含两个域的新 ssl 证书
sudo certbot --nginx -n --redirect -d app.mydomain.com -d *.mydomain.com -d design.customerwebsite.com -d *.customerwebsite.com
Run Code Online (Sandbox Code Playgroud)
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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
427 次 |
| 最近记录: |