バージニア州でAWSエラスティック検索ドメインを作成し、エンドポイントURLを取得しました。
ここで、Route53の動作を構成して、エラスティック検索にいくつかの変更がある場合や災害復旧の場合でも、呼び出し元が同じURLを使用できるようにしたいと思いました。
そう、
Virginia Route 53-1ポイント--Virgina Elastic Search Domain URL Oregon Route 53-2ポイント--Oregon Elastic Search Domain URL Main Route 53-3 Points to-Route 53 1 or 2
私はすでにこれらを作成し、正しいSANエントリでSSL証明書を作成してアップロードしました。しかし、実行すると、
curl https://mainroute53/health
curl https://virginiaroute53/health
curl https://oregonroute53/health
私はこのエラーを受けています、
curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.
しかし、Elastic Search URLを直接呼び出すと、その機能が有効になります。これは、証明書の使用方法に関する問題であることを理解しています。助けてくれてありがとう。
Elastic Searchエンドポイントは常にElastic Search SSL証明書を返します。
そのため、Route 53の「エイリアス」を作成すると、カスタムDNSエントリを介してそれに接続している可能性がありますが、Elastic Searchは引き続きElastic Search SSL証明書を使用します。
使用しているDNSエンドポイントがSSL証明書と一致しないため、そのエラーが発生します。
--insecure
curlフラグを使用してSSL証明書をチェックしないようにしますが、これを行うリスクがあります。
httpsエンドポイントの代わりにhttpエンドポイントを使用できます
curl **http**://mainroute53/health
これは、AWSがmanagedElasticサービスでカスタムドメイン証明書を提供することを許可していないという事実を回避します
Elasticsearchドメイン内にELBがあるように見えるので、それはちょっとばかげていますが、Elasticsearchドメインの前にプロキシサーバーを設定することでおそらくこれを回避できます。まぁ。
Amazon ESが作成するドメインには、ElasticsearchクラスターのノードといくつかのAWSサービスのリソースが含まれます。 Amazon ESがドメインを作成すると、サービス制御されたVPCにインスタンスが起動されます。これらのインスタンスの前にはElastic Load Balancing(ELB)があり、ロードバランサーのエンドポイントはRoute 53を介して公開されます。ドメインへのリクエストはELBロードバランサーを通過し、ELBロードバランサーがドメインのEC2インスタンスにルーティングします。
https://aws.Amazon.com/blogs/database/set-access-control-for-Amazon-elasticsearch-service/