在AWS上,我主持了EL2覆蓋的EC2上的多個(完全不同的)域。我已經爲1個域名及其子女申請了1個通配符SSL證書。 (xxxx.site1.com)我可以使用單個AWS ELB爲2個不同的域主持2個SSL證書嗎?
那麼現在我可以爲另一個不同的域再添加一個SSL SSL證書(在同一個ELB上),比如(www.site2.com)?
我在問這是因爲一些文章說,它不會工作,只是粉碎。
請提出建議。
在AWS上,我主持了EL2覆蓋的EC2上的多個(完全不同的)域。我已經爲1個域名及其子女申請了1個通配符SSL證書。 (xxxx.site1.com)我可以使用單個AWS ELB爲2個不同的域主持2個SSL證書嗎?
那麼現在我可以爲另一個不同的域再添加一個SSL SSL證書(在同一個ELB上),比如(www.site2.com)?
我在問這是因爲一些文章說,它不會工作,只是粉碎。
請提出建議。
號,你可以做到這一點的唯一方法是,如果你使用第二個端口,用於HTTPS連接(443除外),因爲443並不適用於現實世界的場景是HTTPS
具有默認端口說,你可以簡單地創建第二個ELB併爲其分配第二個通配符證書。您還可以將您的流量轉發到與第一個ELB將流量轉發到的服務器相同的後端服務器。
希望這會有所幫助。
是的,這是有道理的。另一方面(但不常見)是直接將Cert應用到實例上。 –
您還可以獲得SAN(主題備用名稱)證書(也稱爲UCC證書),該證書允許您使用具有單一SSL證書的安全多個域。它可能不適合你,因爲你需要一個通配符證書,但它可以幫助其他不需要通配符的人。請閱讀有關SAN Certs的更多信息:https://www.digicert.com/subject-alternative-name.htm – michaelrmcneill
是的。但不能通過終止負載平衡器上的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
有一個可用的,如果你mod_proxy_protocol
模塊還正在使用Apache。
這樣做不是添加一個額外的分佈層; ELB還處理分發流量,連接流失。但是,SSL終止由每個單獨的服務器處理。
請將鏈接中最有價值的部分添加到答案中。 – sobolevn
這是否意味着Nginx在這裏將成爲Web服務器的一個「額外」Load Balancer? –
我同意Garth Kerr對Nginx的回答。
在Apache中的情況:
您可以在ELB或Apache/Nginx的終止SSL證書(服務器)級
在多租戶(多客戶)架構的情況下,我們可能需要在單個ELB下支持不同的客戶(不同域名 - * .abc.com,* .xyz.com),這在現有的ELB設置中不起作用。
解決方案: 您可以像下面的ELB添加偵聽做到這一點: TCP 443(而不是HTTPS - 443) - 這將通過443個請求 然後,您可以在服務器級別終止SSL證書
您必須從外部供應商(如GoDaddy)購買證書並安裝&終止服務器級別的證書。
E.g., 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>
自2017年10月10日有可能與應用負載平衡器來做到這一點。您可以將多個證書綁定到負載均衡器上的同一個安全偵聽器,ALB將自動爲每個客戶端選擇最佳的TLS證書。有關詳細信息,請參閱:https://aws.amazon.com/blogs/aws/new-application-load-balancer-sni/
對於需要25個或更少證書的情況,這是一個很好的選擇。具有能夠卸載SSL終端的附加好處。 –
您現在可以擁有多個域,只需使用Amazon ACM(AWS Certificate Manager)創建具有多個域的證書,然後在ELB中使用該域。 https://console.aws.amazon.com/acm/ – Kurt