1

をクライアント証明書を必要とEC2インスタンスと自己署名証明書を使用することが可能です。私は、インスタンスをAPIゲートウェイ経由でのみアクセス可能にしたいと考えています。そこで、私はhereのように、認証のためにクライアント側の証明書を使用する方法を検討しました。はここに私の状況ですAPIゲートウェイから

私のEC2インスタンスには、Railsアプリケーションを提供するNginxがあります。私は自分のマシン上で自己署名証明書を生成し、それを使ってhttps以上のものを提供するようにNginxを設定しました。

すべてが細かいようだが、私はAPI Gatewayコンソールからのプロキシエンドポイントを起動しようとすると、私は以下のように500エラーが表示されます。私はそれはとは何かを持っていることを考えてい

... 
Thu Sep 14 02:27:05 UTC 2017 : Endpoint request URI: https://xxxxxxxxx.xxxxxxxxx.us-east-1.elasticbeanstalk.com/health 
Thu Sep 14 02:27:05 UTC 2017 : Endpoint request headers: {x-amzn-apigateway-api-id=xxxxxxxxx, User-Agent=AmazonAPIGateway_xxxxxxxx, Accept-Encoding=identity} 
Thu Sep 14 02:27:05 UTC 2017 : Endpoint request body after transformations: 
Thu Sep 14 02:27:05 UTC 2017 : Sending request to https://xxxxxxxxx.xxxxxxxx.us-east-1.elasticbeanstalk.com/health 
Thu Sep 14 02:27:05 UTC 2017 : Execution failed due to configuration error: General SSLEngine problem 
Thu Sep 14 02:27:05 UTC 2017 : Method completed with status: 500 

私がバックエンドで自己署名証明書を使用しているという事実。しかし、実際にセットアップを完了するために正当な証明書を購入する必要がありますか? API Gateway経由でのみEC2インスタンスへのリクエストを受け入れることができる他のソリューションはありますか?

私はhereと記載されているラムダメソッドを見ましたが、要求に複雑さや待ち時間を追加したくありませんでした。

ここに私のnginxの構成は、完全性のためだ。

server { 
     listen  443; 
     server_name localhost;   

     ssl     on; 
     ssl_certificate  /etc/pki/tls/certs/server.crt; 
     ssl_certificate_key /etc/pki/tls/certs/server.key; 

     ssl_session_timeout 5m; 

     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
     ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; 
     ssl_prefer_server_ciphers on; 
     ssl_client_certificate /etc/pki/tls/certs/api_gateway.cer; 
     ssl_verify_client on; 

     if ($ssl_protocol = "") { 
     return 444; 
     } 
    } 

答えて

1

私の答えはこちらAWS API Gateway - Use Client-Side SSL Certificatesを参照してください。 NGINXとの非互換性を確認してください - 私はPoCを作成し、Client-SSLの動作でAuthenticateを検証できました。

+0

ええ、私はこれを行って、それが動作するかどうかを確認します。証明書の手順を踏まないでください。つまり、EB環境のドメインを指すCNAMEレコードを最初に取得する必要がありますか?または、AWSが提供する動的なものを使用して、それをnginx設定のserver_nameとして配置することはできますか?ありがとう。 – arjabbar

1

APIゲートウェイがknown incompatibility with NGINX around Client Certificatesを持っていることを、この記事の執筆時点で表示されます。

+0

本当に厄介な人、特に弾力のあるbeanstalkでサポートされているプラ​​ットフォームの半分がNginxをプロキシサーバーとして使用しています。プラットフォームを動かすだけではなく、自分のプラットフォームを構築すること以外に何か提案がありますか? – arjabbar

関連する問題