kubernetes 我可以使用一个AWS ELB为2个不同的域托管2个SSL证书吗?

y1aodyip  于 2023-01-16  发布在  Kubernetes
关注(0)|答案(4)|浏览(186)

在AWS上,我在EC2上托管多个(完全不同的)域名,这些域名由一个ELB覆盖。我已经为1个域名及其查尔兹域名提供了1个通配符SSL证书。(xxxx.site1.com)
那么现在我可以添加一个更多的单一SSL证书(在同一ELB)为1另一个不同的域,如(www.site2.com)请?
我问这个是因为有些文章说,它不会工作,只是粉碎。
敬请指教。

yqlxgs2m

yqlxgs2m1#

不可以。唯一的方法是使用第二个端口进行HTTPS连接(443除外),这不适用于实际情况,因为443是HTTPS的默认端口
话虽如此,您可以简单地创建第二个ELB并为其分配第二个通配符证书。您还可以将流量转发到第一个ELB转发流量的同一个后端服务器。
希望这个有用。

xxe27gdn

xxe27gdn2#

可以。但不能在负载平衡器上终止SSL。您必须在ELB上启用代理协议,并透明地将TCP请求转发到Web服务器。本文中有更多关于如何使用NGINX配置示例配置ELB的详细信息:
Multiple SSL domains on AWS ELB with Nginx
使用AWS CLI启用:

aws elb create-load-balancer-policy \  
  --load-balancer-name acme-balancer \
  --policy-name EnableProxyProtocol \
  --policy-type-name ProxyProtocolPolicyType \
  --policy-attributes AttributeName=ProxyProtocol,AttributeValue=True

aws elb set-load-balancer-policies-for-backend-server \  
  --load-balancer-name acme-balancer \
  --instance-port 9443 \
  --policy-names EnableProxyProtocol

aws elb describe-load-balancers --load-balancer-name acme-balancer

如果您使用的是Apache,还可以使用mod_proxy_protocol模块。
增加额外的分布层;ELB仍然处理流量分配、连接排出。但是,SSL终止由每个单独的服务器处理。

zynd9foi

zynd9foi3#

自2017年10月10日起,可以使用应用负载平衡器实现这一点。您可以将多个证书绑定到负载平衡器上的同一个安全侦听器,ALB将自动为每个客户端选择最佳TLS证书。有关详细信息,请参阅:https://aws.amazon.com/blogs/aws/new-application-load-balancer-sni/

raogr8fs

raogr8fs4#

我同意Garth Kerr对Nginx的上述回答。
如果是Apache:
您可以在ELB或Apache/Nginx(服务器)级别终止SSL证书
在多租户(多客户端)体系结构的情况下,我们可能需要在单个ELB下支持不同的客户(具有不同的域- .abc.com、.xyz.com),这在现有ELB设置中无法工作。
解决方案:您可以通过在ELB中添加侦听器来实现此目的,如下所示:TCP 443(而不是HTTPS - 443)-这将通过443个请求。然后,您可以在服务器级别终止SSL证书
您必须从外部供应商(如GoDaddy)购买证书,并在服务器级别安装和终止证书。
例如,Apache虚拟主机如下所示

NameVirtualHost *:443
<VirtualHost *:443>
        ServerName abc.com

        ####abc HTTPS Certificate
        SSLEngine on
        SSLCertificateFile /opt/organization/site/ssl_keys/abc/abc_gd.crt
        SSLCertificateKeyFile /opt/organization/site/ssl_keys/abc/abc.pem
        SSLCertificateChainFile /opt/organization/site/ssl_keys/abc/abc_gd_bundle.crt

        WSGIScriptAlias / /opt/organization/site/deployment-config/abc.wsgi

        ServerSignature On
        Alias /media/ /opt/organization/site/media/
        <Directory /opt/organization/site/media/>
        Order deny,allow
        Allow from all
        </Directory>
</VirtualHost>

NameVirtualHost *:80
<VirtualHost *:80>
        ServerName abc.com

        #Rewrite to HTTPS in case of HTTP
        RewriteEngine On
        RewriteCond %{SERVER_NAME} abc.com
        RewriteCond %{HTTP:X-Forwarded-Proto} !https
        RewriteRule . https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

        WSGIScriptAlias / /opt/organization/site/deployment-config/abc.wsgi
        ServerSignature On
        Alias /media/ /opt/organization/site/media/
        <Directory /opt/organization/site/media/>
        Order deny,allow
        Allow from all
        </Directory>
</VirtualHost>

相关问题