2016-07-08 3 views
1

가을/etc/nginx를/사이트 사용이/기본EC2 (우분투 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 
    } 

    ... 
} 

오류 로그가 말한다 '더 ssl_certificate이/등의 "SSL"지시문에 대해 정의되지 않습니다/nginx/sites-enabled/default : 24 '입니다. 알았어. 나는 nginx 워드 프로세서에서 몇 가지 다른 트릭을 시도했지만 운이 없다. API 게이트웨이를 통해서만 트래픽을 받아들이려면 nginx 설정에 if-then을 추가하면됩니다. 어떻게 할 수 있습니까? 수신 측에서 SSL을 요구하지 않고 이것을 수행하는 가장 좋은 방법은 무엇입니까?

답변

-1

클라이언트 인증서를 사용하여 끝점을 보호하므로 API 게이트웨이에서 HTTP 프로토콜이 필요합니다. API 게이트웨이 서비스는 유효한 인증서가없는 통합 끝점을 신뢰하지 않습니다. 또한 how to setup Client side certificate auth in Nginx에 대한 매우 명확한 문서가 있습니다. 당신도 잘 보길 원할 것입니다.

+1

Aws API 게이트웨이 서비스에서 자체 서명 된 인증서가 작동하지 않습니다. [link] (http://stackoverflow.com/questions/32828670/client-certificates-with-aws-api-gateway)는 "... 2015 년 9 월 28 일부터 aws api gateway는 신뢰할 수있는 인증 기관 " – evansgambit