的/ etc / nginx的/ /默认启用位点-
server {
listen 80 default_server;
root /var/www/example;
index index.php;
server_name localhost;
location / {
try_files $uri/ /index.php
}
...
}
这很好用。我没有在该实例上安装SSL。除了来自AWS API-Gateway的调用之外,我想阻止访问我的api(扩展到多个EC2实例)。我在API网关控制台(.pem)下创建了一个客户端证书,并将以下内容添加到nginx配置中:
server {
listen 443;
ssl on;
ssl_client_certificate /etc/nginx/ssl/cert.pem;
ssl_trusted_certificate /etc/nginx/ssl/cert.pem;
ssl_verify_client on;
root /var/www/example
index index.php;
server_name localhost;
location / {
try_files $uri /index.php
}
...
}
错误日志显示'没有为/ etc / nginx / sites-enabled / default:24 '中的“ssl”指令定义ssl_certificate。好,可以。我从nginx文档中尝试了一些其他技巧,但没有运气。那么通过认证并将if-then添加到nginx配置以仅接受来自API网关的流量呢?怎么做到呢?在您看来,在接收端不需要SSL的情况下,最好的方法是什么?
答案 0 :(得分:-1)
由于您使用客户端证书来保护端点,因此API网关需要HTTPs协议。没有有效证书,API网关服务不信任任何集成端点。此外,还有关于how to setup Client side certificate auth in Nginx的非常明确的文档。你可能也想看看。