TLS/SSL のmongod
と の設定mongos
項目一覧
- Overview
- 前提条件
- 認証局
-
mongod
およびmongos
証明書鍵ファイル - 手順(
net.tls
設定を使用) - TLS/SSL 証明書と鍵を使用して
mongod
およびmongos
を設定します mongod
およびmongos
をクライアント証明書検証で設定します- プロトコルを許可しない
- TLS/SSL 証明書のパスフレーズ
- オンライン証明書ローテーション
- FIPS モードで実行する
- 次のステップ
- 手順(
net.ssl
設定を使用) - TLS/SSL 証明書と鍵を使用して
mongod
およびmongos
を設定します mongod
およびmongos
をクライアント証明書検証で設定します- プロトコルを許可しない
- TLS/SSL 証明書のパスフレーズ
- FIPS モードで実行する
- 次のステップ
Overview
このドキュメントは、TLS/SSL をサポートする新しい MongoDB インスタンスの構成に役立ちます。 現在 TLS/SSL を使用していないクラスターを TLS/SSL を使用するようにアップグレードする手順については、「 TLS/SSL を使用するようにをアップグレードする」を参照してください。
MongoDB はネイティブ TLS/SSL OS ライブラリを使用します。
プラットフォーム | TLS/SSL ライブラリ |
---|---|
Windows | セキュア チャネル(Schannel) |
Linux/BSD | OpenSSL |
MacOS | セキュア トランスポート |
注意
MongoDB は、TLS 1.1 + が利用可能なシステムで TLS 1.0暗号化のサポートを無効にします。
MongoDB の TLS/SSL 暗号化では、すべての接続に対して鍵長が 128 ビット以上の強力な TLS/SSL 暗号のみを使用できます。
MongoDB の Linux 64 ビット レガシー x64 ビルドには、TLS/SSL のサポートは含まれていません。
前提条件
重要
TLS/SSL、PKI(公開キー基盤)証明書、認証局についての詳細な説明は、このドキュメントの範囲外です。このページでは、TLS/SSL に関する予備知識があり、有効な証明書にアクセスすることを前提としています。
認証局
実稼働環境で使用する場合、MongoDB の配置には、認証局によって生成および署名された有効な証明書を使用する必要があります。ユーザーまたは組織は、独立した認証局を作成して維持することも、サードパーティの TLS ベンダーによって生成された証明書を使用することもできます。証明書の取得と管理については、このドキュメントの範囲外です。
ノード証明書の要件
メンバー証明書を使用して、シャーディングされたクラスターまたはレプリカセットへのメンバーシップを検証します。メンバー証明書ファイルのパスは net.tls.clusterFile
オプションおよび net.tls.certificateKeyFile
オプションで構成されます。メンバーには次の構成要件があります。
クラスター ノードの設定では、認証に使用される属性の少なくとも 1 つに空でない値を指定する必要があります。デフォルトで MongoDB は次のものを受け入れます。
組織 (
O
)組織単位 (
OU
)ドメインコンポーネント (
DC
)
net.tls.clusterAuthX509.extensionValue
を設定することで、認証に使用する代替属性を指定できます。クラスター ノード設定には同じ
net.tls.clusterAuthX509.attributes
を含み、一致する値を使用する必要があります。属性の順序は関係ありません。次の例えではO
とOU
を設定しますが、DC
は設定しません。net: tls: clusterAuthX509: attributes: O=MongoDB, OU=MongoDB Server
注意
enforceUserClusterSeparation
パラメータを無効にすると、次の動作が適用されます。
構成ファイルで
clusterAuthMode
がkeyFile
の場合、O/OU/DC
チェックは無効になります。 これにより、メンバー証明書を持つクライアントは、$external
データベースに保存されているユーザーとして認証できるようになります。構成ファイルで
clusterAuthMode
がkeyFile
でない場合、サーバーは起動しません。
enforceUserClusterSeparation
パラメータをfalse
に設定すると、サーバーは、アプリケーションが認証に使用するクライアント証明書と、特権アクセス権を持つクラスター内証明書を区別しません。 これは、 clusterAuthMode
がkeyFile
である場合、効果はありません。 ただし、 clusterAuthMode
がx509
の場合、許可されたスキームを使用するユーザー証明書はクラスター証明書と複合化され、特権アクセスが付与されます。
次の操作を行うと、既存の証明書に内部特権が付与されます。
このパラメーターで許可された名前を持つユーザーを作成します。
enforceUserClusterSeparation
パラメータをfalse
に設定します。clusterAuthMode
をx509
に設定します。
enforceUserClusterSeparation
フラグによって作成が許可された昇格特権を持つユーザーを削除したことを検証せずに、 keyFile
からx509
にアップグレードすることはできません。
enforceUserClusterSeparation
パラメータをfalse
に設定するには、起動時に次のコマンドを実行します。
mongod --setParameter enforceUserClusterSeparation=false
証明書には次の要件があります。
単一の認証局 (CA) が、シャーディングされたクラスターまたはレプリカセットのノードすべての x.509 証明書を発行する必要があります。
サブジェクト代替名 (
SAN
) エントリの少なくとも 1 つは、他のクラスター ノードが使用するサーバー ホスト名と一致する必要があります。SAN
を比較する際に、MongoDB は DNS 名または IP アドレスのいずれかを比較できます。subjectAltName
を指定しない場合、MongoDB は代わりに共通名(CN)を比較します。 ただし、CN のこの使用は RFC に従って非推奨となります。2818certificateKeyFile
として使用される証明書にextendedKeyUsage
が含まれている場合、値にはclientAuth
(「TLS Web クライアント認証」)とserverAuth
(「TLS Web サーバー認証」)の両方を含める必要があります。extendedKeyUsage = clientAuth, serverAuth clusterFile
として使用される証明書にextendedKeyUsage
が含まれている場合、値にはclientAuth
が含まれている必要があります。extendedKeyUsage = clientAuth
mongod
およびmongos
証明書キーファイル
TLS/SSL 接続を確立する際、mongod
/mongos
は ID を確立するために、クライアントに証明書鍵ファイルを提示します。[1] 証明書鍵ファイルには公開キー証明書とそれに関連付けられた秘密キーが含まれていますが、クライアントに公開されるのは公開コンポーネントのみです。
MongoDB は認証局によって発行された有効な TLS/SSL 証明書、または自己署名の証明書を使用できます。自己署名証明書を使用する場合、通信チャネルは接続の盗聴を防ぐために暗号化されますが、サーバーの身元は検証されません。これでは中間者攻撃(man-in-the-middle attack)に対して脆弱なままになってしまいます。信頼できる認証局によって署名された証明書を使用することで、MongoDB ドライバーはサーバーの身元を確認できるようになります。
一般に、ネットワークが信頼されていない限り、自己署名証明書の使用は避けてください。
レプリカセットとシャーディングされたクラスターのノードの証明書に関しては、サーバーごとに異なる証明書を使用することをお勧めします。これにより秘密キーの露出が最小限に抑えられ、ホスト名の検証が可能になります。
注意
MongoDB の配置が CA ファイルを使用するように構成されていない場合、クライアント証明書の検証はバイパスされます。
[1] | FIPS モードの場合は、証明書が FIPS に準拠している(つまり FIPS 準拠のアルゴリズムを使用している)こと、および秘密キーが PKCS#8 標準を満たしていることを確認します。秘密キーを PKCS#8 形式に変換する必要がある場合は、 openssl pkcs8 などのさまざまな変換ツールが利用できます。 |
手順(net.tls
設定を使用)
注意
MongoDB は、 net.ssl
設定(および--ssl
コマンドライン オプション)に対応するnet.tls
設定(および--tls
コマンドライン オプション)を提供します。 MongoDB は常に TLS 1.0以降をサポートしているため、新しいtls
設定はssl
設定と同じ機能を提供します。
このセクションの手順では、net.tls
設定を使用します。net.ssl
エイリアスの使用手順については、「手順(net.ssl
設定の使用)」を参照してください。
mongod
mongos
TLS/SSL 証明書と鍵を使用して および を設定します
次のセクションでは、TLS/SSL 接続を使用するようにmongod
/ mongos
を構成します。この TLS/SSL 設定により、mongod
/ mongos
は証明書鍵ファイルをクライアントに提示します。ただし、mongod
/ mongos
では、クライアントの ID の確認にクライアントの証明書鍵ファイルを要求しません。クライアントの証明書鍵ファイルを要求するには、「クライアントの証明書の検証を使用して mongod
とmongos
を設定する」を参照してください。
注意
この手順では、net.tls
設定を使用します。net.ssl
設定の使用手順については、「手順(net.ssl
設定の使用)」を参照してください。
TLS/SSL 接続を使用するには、mongod
/mongos
インスタンスの構成ファイルに次の TLS/SSL 設定を含めます。
設定 | ノート |
---|---|
この設定は各サーバーが TLS/SSL 暗号化接続のみを使用するように制限します。値 | |
例えとして mongod
インスタンスの次の構成ファイルを考えてみましょう。
net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true net: bindIp: localhost,mongodb0.example.net port: 27017
Windows と macOS のシステム SSL 証明書ストアを使用できます。システム SSL 証明書ストアを使用するには、証明書鍵ファイルの代わりに net.tls.certificateSelector
を指定します。
設定 | ノート |
---|---|
この設定は各サーバーが TLS/SSL 暗号化接続のみを使用するように制限します。値 | |
プロパティ( この設定は、証明書を選択するために使用されます。 詳細については、 |
例えとして mongod
インスタンスの次の構成ファイルを考えてみましょう。
net: tls: mode: requireTLS certificateSelector: subject="<CertificateCommonName>" systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true net: bindIp: localhost,mongodb0.example.net port: 27017
上記の構成を使用する mongod
インスタンスは、TLS/SSL 接続のみを受け入れることができます。
mongod --config <path/to/configuration/file>
TLS/SSL を使用した接続の詳細については、「暗号化を使用した MongoDB インスタンスへの接続」を参照してください。
Tip
以下も参照してください。
構成ファイルの代わりにコマンドライン オプションを使用して mongod
と mongos
を設定することもできます。
mongod
については--tlsMode
、--tlsCertificateKeyFile
、および--tlsCertificateSelector
を参照してください。mongos
については--tlsMode
、--tlsCertificateKeyFile
、および--tlsCertificateSelector
を参照してください。
mongod
mongos
および をクライアント証明書検証で設定します
次のセクションでは TLS/SSL 接続を使用し、クライアント証明書の検証を実行するように mongod
/mongos
を設定します。これらの TLS/SSL 設定では次のようになります。
注意
この手順では net.tls
設定を使用します。net.ssl
設定の使用手順については、「手順 (net.ssl
設定の使用)」を参照してください。
TLS/SSL 接続を使用してクライアント証明書の検証を実行するには、mongod
/mongos
インスタンスの構成ファイルに次の TLS/SSL 設定を含めます。
注意
Windows と macOS のシステム SSL 証明書ストアを使用できます。システム SSL 証明書ストアを使用するには、証明書鍵ファイルの代わりに net.ssl.certificateSelector
を指定します。
設定 | ノート |
---|---|
この設定は各サーバーが TLS/SSL 暗号化接続のみを使用するように制限します。値 | |
重要
TLS/SSL を有効にして mongod
インスタンスを起動する場合は、--tlsCAFile
フラグ、net.tls.CAFile
構成オプション、tlsUseSystemCA
パラメーターのいずれかの値を指定する必要があります。
--tlsCAFile
、tls.CAFile
、tlsUseSystemCA
は、すべて相互に排他的です。
例えとして mongod
インスタンスの次の構成ファイルを考えてみましょう。
net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/caToValidateClientCertificates.pem systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true net: bindIp: localhost,mongodb0.example.net port: 27017
上記の構成を使用する mongod
インスタンスは、TLS/SSL 接続のみを受け入れることができ、クライアントからの有効な証明書を必要とします。
mongod --config <path/to/configuration/file>
クライアントは TLS/SSL 接続を指定し、証明書鍵ファイルをインスタンスに提示する必要があります。TLS/SSL を使用した接続の詳細については、「クライアント証明書を必要とする MongoDB インスタンスへの接続」を参照してください。
Tip
以下も参照してください。
構成ファイルの代わりにコマンドライン オプションを使用して mongod
と mongos
を設定することもできます。
mongod
については--tlsMode
、--tlsCertificateKeyFile
、および--tlsCAFile
を参照してください。mongos
については--tlsMode
、--tlsCertificateKeyFile
、--tlsCAFile
を参照してください。
クライアントの失効した証明書のブロック
注意
この手順では、net.tls
設定を使用します。net.ssl
設定の使用手順については、「手順(net.ssl
設定の使用)」を参照してください。
失効した証明書を持つクライアントが mongod
または mongos
インスタンスに接続できないようにするには、CRL(Certificate Revocation List、証明書失効リスト)を使用できます。
CRL ファイルを指定するには、net.tls.CRLFile
に失効した証明書を含むファイルを設定します。
以下に例を挙げます。
net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/caToValidateClientCertificates.pem CRLFile: /etc/ssl/revokedCertificates.pem
/etc/ssl/revokedCertificates.pem
ファイルにリストされている証明書を提示するクライアントは接続できません。
Tip
以下も参照してください。
コマンドライン オプションを使用して失効した証明書リストを設定することもできます。
mongod
については--tlsCRLFile
を参照してください。mongos
については--tlsCRLFile
を参照してください。
クライアントが証明書を提示した場合のみ検証する
ほとんどの場合、クライアントが提示する証明書が有効であることを確認するのが重要です。ただし、クライアント証明書を提示できないクライアントや、証明書の使用に移行途中のクライアントがある場合は、証明書を提示するクライアントからの証明書のみを検証することをお勧めします。
注意
この手順では、 net.tls
設定を使用します。 net.ssl
設定の使用手順については、「手順( net.ssl
設定の使用) 」を参照してください。
証明書を提示しないクライアントのクライアント証明書の検証をバイパスするには、net.tls.allowConnectionsWithoutCertificates
を true
に設定します。
以下に例を挙げます。
net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/caToValidateClientCertificates.pem allowConnectionsWithoutCertificates: true
これらの設定で実行中の mongod
/mongos
では、次からの接続が許可されます。
証明書を提示しないクライアント。
有効な証明書を提示するクライアント。
注意
クライアントが証明書を提示する場合、その証明書は有効な証明書である必要があります。
証明書を提示していない接続も含め、すべての接続は TLS/SSL を使用して暗号化されます。
クライアントの TLS/SSL 接続の詳細については、「クライアントの TLS/SSL 構成」を参照してください。
Tip
以下も参照してください。
コマンドライン オプションを使用して構成することもできます。
mongod
については--tlsAllowConnectionsWithoutCertificates
を参照してください。mongos
については--tlsAllowConnectionsWithoutCertificates
を参照してください。
プロトコルを許可しない
注意
この手順では、 net.tls
設定を使用します。 net.ssl
設定の使用手順については、「手順( net.ssl
設定の使用) 」を参照してください。
MongoDB サーバーが特定のプロトコルを使用する着信接続を受け入れないようにするには、許可されていないプロトコルに設定された net.tls.disabledProtocols
を含めます。
例えとして次の構成では、mongod
/mongos
が TLS1_0
または TLS1_1
を使用する着信接続を受け入れないようにします。
net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/caToValidateClientCertificates.pem disabledProtocols: TLS1_0,TLS1_1
Tip
以下も参照してください。
コマンドライン オプションを使用して構成することもできます。
mongod
については--tlsDisabledProtocols
を参照してください。mongos
については--tlsDisabledProtocols
を参照してください。
TLS/SSL 証明書のパスフレーズ
mongod
/mongos
の証明書鍵ファイルが暗号化されている場合は、パスフレーズに設定された net.tls.certificateKeyFilePassword
を含めます。
Tip
クリアテキストでパスフレーズを指定しないで済むように、構成ファイルで展開値を使用できます。
Tip
以下も参照してください。
コマンドライン オプションを使用して構成することもできます。
mongod
については--tlsCertificateKeyFilePassword
を参照してください。mongos
については--tlsCertificateKeyFilePassword
を参照してください。
オンライン証明書ローテーション
MongoDB 5.0 以降では、次の証明書鍵ファイルをオンデマンドでローテーションできます。
CRL (Certificate Revocation List) files
(Linux および Windows プラットフォーム上)
1 つまたは複数の証明書をローテーションする。
次の制約に注意しながら、ファイルシステム上でローテーションしたい証明書を置き換えます。
新しい証明書はそれぞれ、置き換える証明書と同じファイル名と同じファイルパスを持っている必要があります。
暗号化された
TLS Certificate
をローテーションする場合、そのパスワードは古い証明書のパスワードと同じである必要があります(certificateKeyFilePassword
構成ファイル設定で指定)。証明書のローテーションでは、対話型のパスワード プロンプトはサポートされません。
rotateCertificates
コマンドまたはdb.rotateCertificates()
shell メソッドを実行して、mongod
またはmongos
インスタンスで使用される証明書をローテーションします。
証明書のローテーションが行われると、次のようになります。
証明書ファイルが正しくない、期限切れ、取り消されている、または見つからない場合、証明書のローテーションは失敗しますが、既存の TLS 構成が無効になったり、実行中の mongod
または mongos
プロセスが終了したりすることはありません。
MongoDB 5.0 以前のバージョンでは、証明書のローテーションにはダウンタイムが必要であり、通常はメンテナンスウィンドウ中に実行されていました。
追加の考慮事項と完全な使用手順については、rotateCertificates
または db.rotateCertificates()
を参照してください。
FIPS モードで実行する
注意
FIPS に準拠した TLS/SSL は MongoDB Enterprise でのみ利用できます。詳細については「MongoDB を FIPS 用に構成する」を参照してください。
詳細については「MongoDB を FIPS 用に構成する」を参照してください。
次のステップ
クライアントの TLS/SSL サポートを構成するには、「クライアントの TLS/SSL 構成」を参照してください。
手順(net.ssl
設定を使用)
注意
MongoDB は、 net.ssl
設定(および--ssl
コマンドライン オプション)に対応するnet.tls
設定(および--tls
コマンドライン オプション)を提供します。 MongoDB は常に TLS 1.0以降をサポートしているため、新しいtls
設定はssl
設定と同じ機能を提供します。
このセクションの手順では、 net.ssl
設定を使用します。 net.tls
エイリアスの使用手順については、「手順( net.tls
設定の使用)」を参照してください。
mongod
mongos
TLS/SSL 証明書と鍵を使用して および を設定します
次のセクションでは、TLS/SSL 接続を使用するようにmongod
/ mongos
を構成します。この TLS/SSL 設定により、mongod
/ mongos
は証明書鍵ファイルをクライアントに提示します。ただし、mongod
/ mongos
では、クライアントの ID の確認にクライアントの証明書鍵ファイルを要求しません。クライアントの証明書鍵ファイルを要求するには、「クライアントの証明書の検証を使用して mongod
とmongos
を設定する」を参照してください。
TLS/SSL 接続を使用するには、mongod
/mongos
インスタンスの構成ファイルに次の TLS/SSL 設定を含めます。
設定 | ノート |
---|---|
net.ssl.mode |
この設定は各サーバーが TLS/SSL 暗号化接続のみを使用するように制限します。 TLS/SSL の混合モードを使用するには、 |
net.ssl.PEMKeyFile |
例えとして mongod
インスタンスの次の構成ファイルを考えてみましょう。
net: ssl: mode: requireSSL PEMKeyFile: /etc/ssl/mongodb.pem systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true net: bindIp: localhost,mongodb0.example.net port: 27017
Windows と macOS のシステム SSL 証明書ストアを使用できます。システム SSL 証明書ストアを使用するには、証明書鍵ファイルの代わりに net.ssl.certificateSelector
を指定します。
設定 | ノート |
---|---|
net.ssl.mode |
この設定は各サーバーが TLS/SSL 暗号化接続のみを使用するように制限します。 TLS/SSL の混合モードを使用するには、 |
net.ssl.certificateSelector | プロパティ( この設定は、証明書を選択するために使用されます。 詳しくは、 |
例えとして mongod
インスタンスの次の構成ファイルを考えてみましょう。
net: ssl: mode: requireSSL certificateSelector: subject="<CertificateCommonName>" systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true net: bindIp: localhost,mongodb0.example.net port: 27017
上記の構成を使用する mongod
インスタンスは、TLS/SSL 接続のみを受け入れることができます。
mongod --config <path/to/configuration/file>
TLS/SSL を使用した接続の詳細については、「暗号化を使用した MongoDB インスタンスへの接続」を参照してください。
mongod
mongos
および をクライアント証明書検証で設定します
次のセクションでは TLS/SSL 接続を使用し、クライアント証明書の検証を実行するように mongod
/mongos
を設定します。これらの TLS/SSL 設定では次のようになります。
TLS/SSL 接続を使用するには、mongod
/mongos
インスタンスの構成ファイルに次の TLS/SSL 設定を含めます。
注意
Windows と macOS のシステム SSL 証明書ストアを使用できます。システム SSL 証明書ストアを使用するには、証明書鍵ファイルの代わりに net.ssl.certificateSelector
を指定します。
設定 | ノート |
---|---|
net.ssl.mode |
この設定は各サーバーが TLS/SSL 暗号化接続のみを使用するように制限します。 TLS/SSL の混合モードを使用するには、 |
net.ssl.PEMKeyFile | |
net.ssl.CAFile |
例えとして mongod
インスタンスの次の構成ファイルを考えてみましょう。
net: ssl: mode: requireSSL PEMKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/caToValidateClientCertificates.pem systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true net: bindIp: localhost,mongodb0.example.net port: 27017
上記の構成を使用する mongod
インスタンスは、TLS/SSL 接続のみを受け入れることができ、クライアントからの有効な証明書を必要とします。
mongod --config <path/to/configuration/file>
クライアントは TLS/SSL 接続を指定し、証明書鍵ファイルをインスタンスに提示する必要があります。TLS/SSL を使用した接続の詳細については、「クライアント証明書を必要とする MongoDB インスタンスへの接続」を参照してください。
Tip
以下も参照してください。
クライアントの失効した証明書のブロック
失効した証明書を持つクライアントが mongod
または mongos
インスタンスに接続できないようにするには、CRL(Certificate Revocation List、証明書失効リスト)を使用できます。
CRLファイルを指定するには、net.ssl.CRLFile
に失効した証明書を含むファイルを設定します。
以下に例を挙げます。
net: ssl: mode: requireSSL PEMKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/caToValidateClientCertificates.pem CRLFile: /etc/ssl/revokedCertificates.pem
/etc/ssl/revokedCertificates.pem
ファイルにリストされている証明書を提示するクライアントは接続できません。
クライアントが証明書を提示した場合のみ検証する
ほとんどの場合、クライアントが提示する証明書が有効であることを確認するのが重要です。ただし、クライアント証明書を提示できないクライアントや、証明書の使用に移行途中のクライアントがある場合は、証明書を提示するクライアントからの証明書のみを検証することをお勧めします。
証明書を提示しないクライアントのクライアント証明書検証をバイパスするには、net.ssl.allowConnectionsWithoutCertificates
を true
に設定します。
以下に例を挙げます。
net: ssl: mode: requireSSL PEMKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/caToValidateClientCertificates.pem allowConnectionsWithoutCertificates: true
これらの設定で実行中の mongod
/mongos
では、次からの接続が許可されます。
証明書を提示しないクライアント。
有効な証明書を提示するクライアント。
注意
クライアントが証明書を提示する場合、その証明書は有効な証明書である必要があります。
証明書を提示していない接続も含め、すべての接続は TLS/SSL を使用して暗号化されます。
クライアントの TLS/SSL 接続の詳細については、「クライアントの TLS/SSL 構成」を参照してください。
プロトコルを許可しない
MongoDB サーバーが特定のプロトコルを使用する接続を受け入れないようにするには、net.ssl.disabledProtocols
に許可されていないプロトコルを設定します。
例えとして次の構成では、mongod
/mongos
が TLS1_0
または TLS1_1
を使用する着信接続を受け入れないようにします。
net: ssl: mode: requireSSL PEMKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/caToValidateClientCertificates.pem disabledProtocols: TLS1_0,TLS1_1
TLS/SSL 証明書のパスフレーズ
mongod
/ mongos
の証明書鍵ファイルが暗号化されている場合は、パスフレーズに設定されたnet.ssl.PEMKeyPassword
を含めます。
FIPS モードで実行する
注意
FIPS に準拠した TLS/SSL は MongoDB Enterprise でのみ利用できます。詳細については「MongoDB を FIPS 用に構成する」を参照してください。
詳細については「MongoDB を FIPS 用に構成する」を参照してください。
次のステップ
クライアントの TLS/SSL サポートを構成するには、「クライアントの TLS/SSL 構成」を参照してください。