首页 文章

一个EC2实例上有多个SSL证书

提问于
浏览
0

我有一个ec2实例,由2个不同的域(.com.au和.co.nz)指向 . 这很好用 .

我正在尝试为这两个域设置SSL . 目前我已经使用了LetsEncrypt并成功为co.nz域设置了SSL,现在希望对.com.au做同样的事情 .

我在这里遵循了指南:

https://www.haktansuren.com/installing-free-letsencrypt-ssl-multiple-domains-sub-domains-amazon-web-services-aws-ec2-simple-way/

但是,当我通过SSLLabs.com运行.com.au网站时,我收到“证书名称不匹配错误”,当我尝试直接访问.com.au域名时,我得到了这个(来自chrome)“此服务器无法证明它是** .com.au;它的安全证书来自** . co.nz . “

.com.au域是ss.conf文件中的第二个“虚拟主机”条目,当我更改顺序时,我得到.co.nz域的相同错误,所以它似乎只读取其中一个条目或什么?

非常感谢帮助

2 回答

  • 0
    • 您可以使用ACM为所需的任何域创建免费证书 .

    • 创建Elastic Load Balancer并选择刚刚创建的证书 .

    • 将EC2实例连接到Elastic Load Balancer

    最佳实践是创建启动配置并创建Auto Scaling组,并让ASG处理EC2实例的创建 . 在AWS中,您的实例可以随时被杀死,依赖单个EC2实例不是一个好习惯 . 你可能已经存储在临时存储中的所有数据突然丢失了!

  • 0

    如果是Apache:

    您可以在ELB或Apache / Nginx(服务器)级别终止SSL证书

    在多租户(多客户端)架构的情况下,我们可能需要在单个ELB下支持不同的客户(具有不同的域 - * .abc.com,* .xyz.com),这在现有的ELB中不起作用 Build .

    解决方案:您可以通过在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>
    

相关问题