aws api 使用 nginx 的网关客户端 ssl 证书验证
aws api gateway client-side ssl certificate verification with nginx
类似于另一个问题here我正在尝试使用 nginx 验证通过 AWS API 网关发送的 SSL 客户端证书。
我注意到在 documentation 中,AWS API 网关只发送客户端证书和 HTTP 请求。这是否意味着不应配置 HTTPS?
与我在上面发布的问题 link 相反,托管 nginx 的域没有设置 https 证书。
任何帮助,或 link 使用 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;
}
}
}
您误解了文档,但原因很容易理解。
API Gateway will use the certificate for all calls to HTTP integrations in your API.
要解析的短语是 "HTTP integrations"——与 Lambda 或 AWS 服务代理相反——而不是 "HTTP",如 "HTTP without SSL"。他们在一般意义上使用 "HTTP" 来描述类型,而不是传输的具体细节。
SSL 客户端证书在没有 HTTPS 的情况下无法工作,并且在服务器上没有配置 SSL 证书的情况下也无法工作。
类似于另一个问题here我正在尝试使用 nginx 验证通过 AWS API 网关发送的 SSL 客户端证书。
我注意到在 documentation 中,AWS API 网关只发送客户端证书和 HTTP 请求。这是否意味着不应配置 HTTPS?
与我在上面发布的问题 link 相反,托管 nginx 的域没有设置 https 证书。
任何帮助,或 link 使用 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;
}
}
}
您误解了文档,但原因很容易理解。
API Gateway will use the certificate for all calls to HTTP integrations in your API.
要解析的短语是 "HTTP integrations"——与 Lambda 或 AWS 服务代理相反——而不是 "HTTP",如 "HTTP without SSL"。他们在一般意义上使用 "HTTP" 来描述类型,而不是传输的具体细节。
SSL 客户端证书在没有 HTTPS 的情况下无法工作,并且在服务器上没有配置 SSL 证书的情况下也无法工作。