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

AWS负载平衡器背后的SSL证书

巫马令
2023-03-14

我有一个在AWS上运行的项目。结构如下:

Application Load Balancer:
    - EC2 AutoScaling Group [1-5]:
      - 1^ instance...
      ... (more spawned when needed)
      - 5^ instance...

我已使用AWS证书管理器为负载平衡器创建了一个证书。所以现在的流量是:

Clients ---- HTTPS Port 443 ----- > Load Balancer ------ HTTP Port 80 ----> EC2 Instances

但由于加载网页时实例上没有证书,因此会收到“站点不安全”警告。

如何创建从客户端到负载均衡器后面的任何实例的完整SSL连接?

编辑

以下是nginx配置(适用于所有实例)

server {
listen       80;
server_name  marette.ovh www.marette.ovh;

root /home/marette/marette_backend/dist;
index index.html index.htm;

client_max_body_size 10M;
error_page 502 /gateway.html;


location / {
   
    add_header 'Access-Control-Allow-Origin' "*" always;
    add_header 'Access-Control-Allow-Credentials' 'true' always;
    add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
    add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With' always;
   
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_redirect off;
    proxy_read_timeout 30s;
    proxy_send_timeout 30s;

    root /home/marette/marette_backend/dist;
    try_files $uri $uri/ /index.html;
}
    error_log  /var/log/nginx/vue-app-error.log;
access_log /var/log/nginx/vue-app-access.log;


# this is for the REST backend
location /api {
    add_header 'Access-Control-Allow-Origin' "*" always;
    add_header 'Access-Control-Allow-Credentials' 'true' always;
    add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
    add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With' always;
                        # required to be able to read Authorization header in frontend
    add_header 'Access-Control-Expose-Headers' 'Authorization' always;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_read_timeout 30s;
    proxy_send_timeout 30s;      
    proxy_pass https://127.0.0.1:8000/api;
   }

}

共有1个答案

葛驰
2023-03-14

应执行的检查:

  • 始终检查SSL的域名是否正确,如果无效,则会收到证书错误。
  • 验证侦听器是否正确配置为使用HTTPS侦听443,并且SSL是否有效。
  • 验证目标组正在为服务器本身使用正确的协议和端口(不需要与负载均衡器相同)。

一个测试SSL问题的好站点是使用SSL实验室

 类似资料:
  • 我们在AWS VPC中有一个面向内部的应用程序负载平衡器。运行在公用子网中的web应用程序正在访问此文件。该web应用位于自定义域url后面,并使用SSL证书进行安全保护。由于API负载平衡器未应用SSL,因此从web app到API LB的通信失败。 是否可以在AWS中为面向内部的负载平衡器获取SSL证书?

  • 我正在尝试为我的AWS EKS群集的AWS负载平衡器配置SSL。负载平衡器正在代理我的群集上运行的Traefik实例。这在HTTP上运行良好。 然后,我在Cert Manager中创建了我的AWS证书,复制了ARN并遵循了文档的这一部分:服务-Kubernetes 但是证书没有链接到AWS负载平衡器中的侦听器。我在网上找不到更多的文档或工作示例。有人能给我指出一个吗? LoadBalancer配置

  • 我在将https添加到我的EC2实例时遇到了一个问题,也许你们可以找到让它工作的答案。 我有一个负载平衡器,它正在将连接转发到我的EC2实例,我已将SSL证书添加到负载平衡器,一切正常,我已将侦听器添加到端口443,该端口将转发到我的实例的端口443,我已将Apache配置为在端口443和80上侦听,现在这里是我的负载平衡器的屏幕截图: SSL证书有效,在端口80(HTTP)上一切正常,但如果我尝

  • 目标:将弹性/静态IP分配给负载平衡器(LB),以服务于处理DNS(端口53)、HTTPS(端口443)、HTTP(端口80)的EC2实例。 需要静态IP来正确配置DNS记录(即A记录)。需要在后端/服务器上终止TLS,以提供无限制的 经典的负载平衡器允许自定义安全规则,并允许在EC2实例上终止SSL。问题是静态IP不能分配给经典LB,只能分配给其中的单个实例,这无法平衡负载。 要分配静态IP,我

  • 我对Nginx完全陌生。 我想使用免费版本(不是nginx plus)负载平衡(反向代理)之间的3个服务器和连接必须是SSL/443。 我是将SSL证书放在NGINX负载均衡器服务器上,还是将3个SSL证书分别放在3个web服务器上?我听到的评价褒贬不一。我在寻找最好的表现。 其他信息:我使用通配符SSL证书和web其他web服务器是IIS和IP_Hash,以便在相同的web服务器上保持会话。

  • 问题内容: 我正在尝试将所有传入的Traefik从http重定向到https,用于Web应用程序,该应用程序从具有自定义端口的docker容器中获取。 如果我构建了这个docker compose文件,并扩展了应用程序,一切将按预期工作。我可以请求应用程序的http和https,但是我尝试实现仅提供https并将http重定向到https的目的。 由于我使用的是Docker-Compose文件,因