0

此处的其他问题类似,我正在尝试使用已通过 AWS API Gateway 发送的 nginx 验证 SSL 客户端证书。

我注意到在文档中,AWS API Gateway 只发送客户端证书和 HTTP 请求。这是否意味着不应该配置 HTTPS?

与我上面发布的问题的链接相反,托管 nginx 的域没有设置 https 证书。

任何帮助或使用 ssl_verify_client 的工作配置的链接,而无需为域配置 ssl,将不胜感激。

这是我目前正在使用的 nginx 配置:

daemon off;

events {
  worker_connections  4096;
}

http {
  server {
    listen 2345 default_server;

    ssl_trusted_certificate /certs/api-gateway.crt;
    ssl_client_certificate /certs/api-gateway.crt;
    ssl_verify_client on;

    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
    ssl_prefer_server_ciphers on;

    location /ping {
      proxy_pass http://my.http.public.endpoint.com;
    }

    location / {
      if ($ssl_client_verify != SUCCESS) { return 403; }
      proxy_pass http://my.http.public.endpoint.com;
      proxy_set_header X-Client-Verify $ssl_client_verify;
    }
  }
}
4

1 回答 1

3

您误解了文档,尽管原因很容易理解。

API Gateway 将使用证书来调用 API 中的 HTTP 集成。

要解析的短语是“HTTP 集成”——与 Lambda 或 AWS 服务代理相反——而不是“没有 SSL 的 HTTP”中的“HTTP”。他们在一般意义上使用“HTTP”来描述一种类型,而不是传输的具体细节。

SSL 客户端证书在没有 HTTPS 的情况下无法使用,并且如果没有在服务器上配置的 SSL 证书也将无法使用。

于 2015-10-28T17:21:51.920 回答