2014-02-20 10 views
11

Bei AWS hosste ich mehrere (völlig verschiedene) Domains auf EC2, die von einem ELB abgedeckt sind. Ich habe bereits 1 Wildcard SSL Cert für 1 Domain und seine Childs. (xxxx.site1.com)Kann ich mit Single AWS ELB 2 SSL-Zertifikate für 2 verschiedene Domänen hosten?

Dann kann ich nun ein weiteres Single SSL Cert (auf demselben ELB) für 1 andere Domain hinzufügen, wie (www.site2.com) bitte?

Ich frage das, weil einige Artikel sagen, es wird nicht funktionieren und nur verknallt.

Bitte freundlich beraten.

+1

Sie können jetzt mehrere Domänen verwenden, verwenden Sie einfach Amazon ACM (AWS Certificate Manager), um ein Zertifikat mit mehreren Domänen zu erstellen, und verwenden Sie dieses in Ihrem ELB. https://console.aws.amazon.com/acm/ – Kurt

Antwort

11

Nein, der einzige Weg, Sie könnte es tun, wenn Sie einen zweiten Port für HTTPS-Verbindungen (außer 443) verwenden, die seit 443 realen Szenarien gilt nicht, wird der Standard-Port für HTTPS

Having sagte, dass Sie einfach ein zweites ELB erstellen und ihm Ihr zweites Wildcard-Zertifikat zuweisen können. Sie können Ihren Datenverkehr auch an denselben Back-End-Server weiterleiten, an den der erste ELB seinen Datenverkehr weiterleitet.

Hoffe, das hilft.

+0

Ja, das macht Sinn. Und umgekehrt (aber nicht so häufig) ist es, das Cert direkt auf die Instanz (en) anzuwenden. –

+2

Sie können auch ein SAN (Subject Alternative Name) -Zertifikat (auch bekannt als UCC-Zertifikat) erhalten, mit dem Sie mehrere sichere Domänen mit einem einzigen SSL-Zertifikat verwenden können. Es funktioniert möglicherweise nicht für Sie, weil Sie ein Platzhalterzertifikat benötigen, aber es kann anderen Benutzern helfen, die keinen Platzhalter benötigen. Lesen Sie mehr über SAN Certs hier: https://www.digicert.com/subject-alternative-name.htm – michaelrmcneill

8

Ja. Aber nicht durch Beenden von SSL auf dem Lastenausgleich. Sie müssen das Proxy-Protokoll auf dem ELB aktivieren und TCP-Anforderungen transparent an den Webserver weiterleiten. Es gibt weitere Informationen in diesem Artikel, wie Sie die ELB mit Beispiel NGINX Konfigurationen konfigurieren:

Multiple SSL domains on AWS ELB with Nginx

die AWS CLI zu aktivieren:

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 

Es gibt auch eine mod_proxy_protocol Modul, wenn Sie zur Verfügung benutzen Apache.

Dies tut NICHT fügen Sie eine zusätzliche Verteilungsschicht hinzu; ELB kümmert sich immer noch darum, den Verkehr zu verteilen, die Verbindung wird unterbrochen. Die SSL-Terminierung wird jedoch von jedem einzelnen Server durchgeführt.

+0

bitte, fügen Sie die wertvollsten Teile aus dem Link in Ihre Antwort. – sobolevn

+0

Bedeutet dies, dass Nginx hier ein "zusätzlicher" Load Balancer vor Web-Servern wird? –

0

Ich stimme der obigen Antwort für Nginx von Garth Kerr.

Bei Apache:

Sie SSL-Zertifikate kündigen kann entweder bei ELB oder Apache/Nginx (Server) Ebene

Bei Multi-Tenant (Multi-Client) Architektur, können wir müssen Unterstützen Sie verschiedene Kunden (mit verschiedenen Domänen - * .abc.com, * .xyz.com) unter einem einzigen ELB, die in einem bestehenden ELB-Setup nicht funktionieren.

Lösung: Sie können dies tun, indem Zuhörer in ELB Zugabe wie unten: TCP 443 (statt HTTPS - 443) - dies wird die 443 Anfragen Dann passieren Sie die SSL-Zertifikate auf Server-Ebene beenden können

Sie müssen das Zertifikat von externen Anbietern (wie GoDaddy) erwerben und & installieren, um die Zertifikate auf Serverebene zu beenden.

z., Apache Virtual Host sieht aus wie

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> 
5

Seit 10. Oktober 2017 ist es möglich, dies mit Application Load Balancer zu tun. Sie können mehrere Zertifikate an denselben sicheren Listener in Ihrem Lastenausgleichsmodul binden, und ALB wählt automatisch das optimale TLS-Zertifikat für jeden Client aus. Weitere Informationen finden Sie unter: https://aws.amazon.com/blogs/aws/new-application-load-balancer-sni/

+0

Dies ist eine hervorragende Option für Szenarien, die 25 oder weniger Zertifikate erfordern. Mit dem zusätzlichen Vorteil, SSL-Terminierung abladen zu können. –

Verwandte Themen