当前位置: 首页 > 知识库问答 >
问题:

亚马逊ec2如何设置网址?

昌乐生
2023-03-14

我已经阅读了安装https的amazon ec2指南并完成了几个步骤。但它仍然不起作用。

  1. 签一个SSL认证,我用的是自签名证书。
  2. 使用aws iam将SSL证书上传到亚马逊服务器。
  3. 在ec2控制平台中,在当前安全组的入站中添加端口80和端口443
  4. 创建新的负载均衡器,在新的负载均衡器中添加端口80、端口443和带有上传证书的https的超文本传输协议,并在负载均衡器中分配当前实例

最后,我检查了实例的安全组,确保它是正确的。我重新启动实例,https不工作。健康检查可以通过检查端口80。但是它不会通过检查端口443。

我错过了什么步骤吗?

共有1个答案

韩弘方
2023-03-14

我知道这篇文章已经有一年的历史了,但我最近遇到了类似的问题,希望有人能发现这个有用。

我看到您正在使用负载均衡器。您必须执行以下操作:

确保您的EC2实例上的端口443已打开并且没有被防火墙阻止。您可以运行

sudo netstat -tlnp

在linux上检查哪些端口打开。输出应如下所示:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      937/sshd
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1060/mysqld
tcp6       0      0 :::22                   :::*                    LISTEN      937/sshd
tcp6       0      0 :::443                  :::*                    LISTEN      2798/apache2
tcp6       0      0 :::80                   :::*                    LISTEN      2798/apache2

确保安全组设置如下:

EC2(入站)

  • HTTP TCP 80 负载平衡器
  • HTTPS TCP 443 负载平衡器

负载平衡器(出站)

    < li>HTTP TCP 80 EC2实例 < li>HTTPS TCP 443 EC2实例

确保EC2实例正在侦听端口443(/etc/apache2/ports.conf):

Listen 80
Listen 443

如果您使用的是虚拟主机,请确保它看起来像这样:

<VirtualHost *:80>
     DocumentRoot /var/www/html/mysite.com
     ServerName mysite.com
     ServerAlias www.mysite.com
        <Directory /var/www/html/mysite.com>
                AllowOverride All
                RewriteEngine On
                Require all granted
                Options -Indexes +FollowSymLinks
        </Directory>
</VirtualHost>
<VirtualHost *:443>
     DocumentRoot /var/www/html/mysite.com
     ServerName mysite.com
     ServerAlias www.mysite.com
     SSLEngine on
     SSLCertificateFile /usr/local/ssl/public.crt
     SSLCertificateKeyFile /usr/local/ssl/private/private.key
     SSLCACertificateFile /usr/local/ssl/intermediate.crt
</VirtualHost>

使用以下命令以 .pem 格式上传证书文件:

aws iam upload-server-certificate --server-certificate-name my-server-cert 
--certificate-body file://my-certificate.pem --private-key file://my-private-key.pem 
--certificate-chain file://my-certificate-chain.pem

在连接了EC2实例的负载平衡器上创建一个监听器。该监听器用于HTTPS和端口443。监听器将要求一个证书,它会列出您从aws cli添加的证书。如果未列出,请注销AWS控制台,然后重新登录。

之后,通过HTTPS的流量将开始流向您的EC2实例。

我也有类似的问题,并把我的问题和答案贴在这里:HTTPS只在本地主机上工作

 类似资料:
  • 我刚刚开始使用AWS EC2。我明白EC2就像一台远程计算机,在那里我可以做几乎所有我想做的事情。然后我发现了ECS的事。我知道它使用Docker,但我对这两者之间的关系感到困惑。 ECS只是EC2中的Docker安装吗?如果我已经有一个EC2并且我启动了一个ECS,这是否意味着我有两个实例?

  • 我想自己托管一个Redis服务器。我将EC2与Elasticache进行了比较。我想知道EC2的缺点是什么。 一个EC2微型实例的成本与ELasticache微型实例一样高,但其ram却多出400 mb。为什么要使用Elasticache而不在ec2 tiny iNtance上设置自己的Redis服务器?

  • 好的,我在 AWS 中创建一个实例,并遵循手册、视频等中的所有要点。但是我收到“无法连接到服务器,因为防火墙,关闭等” 我配置了以下内容: 实例: 私有IP OK 状态:正在运行 检查:一切正常 公共DNS:好的 公共ip:好的 弹性IP附加:好的 已连接网络接口(并且该网络具有安全组、ips等) 安全组(非默认): 入境的 类型协议端口范围源 RDP TCP 3389 0.0.0.0/0 固态混

  • 我有一个Symfony2应用程序,需要使用AmazonSES发送邮件。我需要使用SMTP进行设置。由于某种原因,我的Symfony2应用程序自从我在实例上运行以来一直无法发送邮件。它在我的本地服务器上运行良好,使用gmail发送邮件,但在实时服务器上niether gmail不起作用。我的配置是: 我已经从SES控制台在线获取了SMTPHOST、SMTPUSER和SMTPPASS这三件东西。但邮件

  • 亚马逊云 图 1.20.2.1 - AWS AWS,即 Amazon Web Services,是亚马逊(Amazon)公司的 IaaS 和 PaaS 平台服务。AWS 提供了一整套基础设施和应用程序服务,使用户几乎能够在云中运行一切应用程序:从企业应用程序和大数据项目,到社交游戏和移动应用程序。AWS 面向用户提供包括弹性计算、存储、数据库、应用程序在内的一整套云计算服务,能够帮助企业降低 IT

  • 希望在应用程序中集成amazon pay(基于美国)。已经有了贝宝和刷卡选项。当提到亚马逊支付沙箱时,它说要先在亚马逊支付注册。注册过程将通过其他步骤进入亚马逊卖家中心帐户,在这些步骤中会询问与业务相关的问题。 从开发的角度来看,我们如何将amazon pay集成到我们的应用程序中?是否有可用的示例api/代码及其程序?欢迎任何指导。