外部接続に対してのみ SSL を有効にしたい MongoDB デプロイメントがあります。
内部通信で SSL を使用したくない理由はいくつかあります。不必要なオーバーヘッドが追加されます。また、内部の mongod をインターネットに公開したくありません。外部 IP を持つ理由さえあるべきではありません。このシナリオでは、mongos はクライアントとの外部通信に SSL を使用し、mongod との内部通信には SSL を使用しない必要があります。
残念ながら、ドキュメントには 4 つの簡単な SSL モードに関する説明しかありません。
- requireSSL : 内部を含むすべての通信に SSL のみを使用します。
- preferSSL : 内部通信に SSL を使用しますが、クライアントからの非 SSL トラフィックを許可します。これは、私たちが望むものとはほとんど反対です。
- allowSSL : SSL の使用を許可しますが、非 SSL も許可します
- 接続。disabled : SSL は一切ありません。
これらはどちらも私たちの状況には役立ちません。
私たちの場合、Parse.com から安全にデータを移行するために SSL が必要なため、さらに悪いことに、独自のルート CA ではなく、一般的に信頼されている CA (letsencrypt など) を使用して証明書を作成する必要があります。
では、内部ではなく外部に SSL を使用する MongoDB デプロイメントを作成するにはどうすればよいでしょうか? SSL ターミネーションを行い、mongodb:// プロトコルを理解するリバース プロキシが必要ですか? それとも何か他の方法がありますか?