【问题标题】:Setup an SSL certificate on an EC2 instance在 EC2 实例上设置 SSL 证书
【发布时间】:2012-04-24 07:29:10
【问题描述】:

我很难在我的 EC2 微型实例上设置 SSL 证书(它是从 NameCheap 购买的 Comodo PositiveSSL)(我使用的是基于 CentOS 的 Amazon Linux AMI 2012.3,如果我没记错的话)。

这就是我所做的:

  1. 我安装了 mod_ssl 和 OpenSSL

  2. 我在 EC2 的实例安全组上启用了端口 443

  3. 我按照 Comodo 的建议将 *.key 和 *.crt 文件改成 777

  4. 我确定 IP 地址和文件路径是正确的(放一堆 示例中为 0,但在我的 ssl.conf 中正确的)

  5. 我将此 VirtualHost 条目添加到 ssl.conf


<VirtualHost 00.000.000.00:443>
   ############# I tried both with & without this section ##############
   ServerName www.mydomain.com:443

   ServerAlias www.mydomain.com
   DocumentRoot /var/www
   ServerAdmin webmaster@mydomain.com
   ######################################################################

   SSLEngine on
   SSLCertificateKeyFile /etc/ssl/mydomain_com.key
   SSLCertificateFile /etc/ssl/mydomain_com.crt
   SSLCertificateChainFile /etc/ssl/mydomain_com.ca-bundle
</VirtualHost>

然后我重新启动了 apache...但是我仍然无法访问 https://www.mydomain.com/ !!!

我检查了ssltool.com,它说

The Common Name on the certificate is: ip-00-00-00-000

The certificate chain consists of:
SomeOrganization, ip-00-00-00-000. Expires on: Apr 10 13:39:41 2013 GMT - that's 363 days from today.
The site tested mydomain.com is NOT the same as the Subject CN ip-00-00-00-000!.

我什至将 VistualHost 复制到 httpd.conf 而不是 ssl.conf 并重新启动 apache,但都是徒劳的。

我这几天一直在用头撞墙。我很确定我错过了一个小东西来完成这项工作,我只是不知道到底是什么。

如果有人能提出一些建议来完成这项工作,我将不胜感激!

【问题讨论】:

    标签: linux ssl amazon-ec2 amazon-web-services ssl-certificate


    【解决方案1】:

    查看您的列表,碰巧您忘记启用虚拟主机的配置。

    sudo a2enmod ssl
    sudo a2ensite default-ssl
    sudo /etc/init.d/apache2 restart
    

    这里有关于如何在您的 EC2 上安装 SSL 证书的完整指南https://medium.com/@adnanxteam/how-to-add-ssl-certificate-to-laravel-on-ec2-aws-18104cc036d1

    【讨论】:

      【解决方案2】:

      亚马逊现在提供证书管理器! (免费)

      如果您使用 Elastic Beanstalk,这是一种新的做法: 它是免费的,您避免了由于配置而导致的错误,并且在 vue 的性能点上是一个更好的选择:

      由于 ELB 支持 SSL 卸载,将证书部署到负载 平衡器(而不是它后面的 EC2 实例)将减少 实例需要完成的加密和解密工作量 处理。

      来自文档:

      新的 AWS Certificate Manager (ACM) 旨在简化和 自动化许多传统上与管理相关的任务 SSL/TLS 证书。 ACM 负责处理周围的复杂性 数字证书的配置、部署和更新! ACM 提供的证书由亚马逊的证书验证 权威机构 (CA)、亚马逊信任服务 (ATS)。

      更好的是,您可以免费完成所有这些工作。 SSL/TLS 通过 AWS Certificate Manager 预置的证书是免费的!

      ACM 将允许您在几分钟内开始使用 SSL。后 您请求证书,您可以将其部署到您的 Elastic Load 平衡器和您的 Amazon CloudFront 分配与几个 点击。之后,ACM 可以处理定期续订,而无需 您的任何操作。

      文档:

      https://aws.amazon.com/fr/blogs/aws/new-aws-certificate-manager-deploy-ssltls-based-apps-on-aws/

      【讨论】:

      • 但是,目前只能将证书从 ACM 部署到 ELB 和云端。因此在 EC2 上是不可能的,用户必须在他的 EC2 实例前面创建一个 ELB,这可能是他不想要的。不过好点
      • 我在某处读到它尚未在 AWS 的所有区域可用!
      • @HiteshRiziya 现在所有地区都支持它
      【解决方案3】:

      有时本节

      <VirtualHost _default_:443>
      

      防止您的真实 SSL 证书被使用。如果是这种情况,请评论 VirtualHost default 或将 SSLCertificate* 属性移至它,即。

      <VirtualHost _default_:443>
        SSLCertificateKeyFile /etc/ssl/mydomain_com.key
        SSLCertificateFile /etc/ssl/mydomain_com.crt
        SSLCertificateChainFile /etc/ssl/mydomain_com.ca-bundle
      </VirtualHost>
      

      确保在此之后重新启动 apache。

      【讨论】:

      • 正确!赞成!顺便说一句,tks 4 关于 route53 定价的编辑!
      • 并且不要忘记您只将 SSL 信息放在端口 443 虚拟主机上。看起来很明显,但是当有很多其他事情要做而你错过了一些小事情时,它会让你绊倒!
      • 我有两个 .crt 文件,没有人使用名称作为“yourdomain.crt”。我必须使用哪一个。
      猜你喜欢
      • 1970-01-01
      • 2018-08-12
      • 2020-11-28
      • 2020-10-31
      • 2014-03-13
      • 2016-05-03
      • 2017-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多