MongoDB サーバーは、同じ TCP ポートで TLS/SSL で暗号化された接続と暗号化されていない接続の両方をリッスンすることをサポートしています。 これにより、MongoDB クラスターのアップグレードで、TLS/SSL 暗号化接続を使用できるようになります。
注意
MongoDB は、TLS 1.2+ が利用可能なシステムでは、TLS 1.0 および TLS 1.1暗号化のサポートを無効にします。
手順(tls 設定を使用)
重要
TLS/SSL、PKI(公開キー基盤)証明書、認証局についての詳細な説明は、このドキュメントの範囲外です。このページでは、TLS/SSL に関する予備知識があり、有効な証明書にアクセスすることを前提としています。
TLS/SSL 暗号化を使用しない MongoDB クラスターから、TLS/SSL 暗号化のみを使用する MongoDB クラスターにアップグレードするには、次のローリング アップグレード プロセスを使用します。
注意
このセクションの手順では、 tls設定/オプションを使用します。 sslエイリアスの使用手順については、「手順( ssl設定の使用) 」を参照してください。
MongoDB では常に TLS 1.0 以降をサポートしているため、 tlsの設定/オプションはsslオプションと同じ機能を提供します。
For each node of a cluster, start the node with the command-line option
--tlsModeor the configuration file optionnet.tls.modeset toallowTLS. TheallowTLSsetting allows the node to accept both TLS/SSL and non-TLS/non-SSL incoming connections. Its connections to other servers do not use TLS/SSL. Include other TLS/SSL options [1] as well as any other options that are required for your specific configuration.注意
mongodとmongosは、デフォルトで localhost にバインドされます。配置のノードが異なるホスト上で実行されている場合、またはリモート クライアントを配置に接続する場合は、--bind_ipまたはnet.bindIpを指定する必要があります。以下に例を挙げます。
mongod --replSet <name> --tlsMode allowTLS --tlsCertificateKeyFile <TLS/SSL certificate and key file> --tlsCAFile <path to root CA PEM file> <additional options>構成ファイルでこれらのオプションを指定するには、 ファイルに次の設定を含めます。
net: tls: mode: allowTLS certificateKeyFile: <path to TLS/SSL certificate and key PEM file> CAFile: <path to root CA PEM file>クラスターのすべてのノードをこれらの設定にアップグレードします。
すべてのクライアントを TLS/SSL 使用に切り替えます。参照: TLS が有効なレプリカセットへの接続。
For each node of a cluster, use the
setParametercommand to update thetlsModetopreferTLS. [2] WithpreferTLSas itsnet.tls.mode, the node accepts both TLS/SSL and non-TLS/non-SSL incoming connections, and its connections to other servers use TLS/SSL. For example:db.adminCommand( { setParameter: 1, tlsMode: "preferTLS" } )クラスターのすべてのノードをこれらの設定にアップグレードします。
この時点で、すべての接続は TLS/SSL を使用するはずです。
For each node of the cluster, use the
setParametercommand to update thetlsModetorequireTLS. [2] WithrequireTLSas itsnet.tls.mode, the node will reject any non-TLS/non-SSL connections. For example:db.adminCommand( { setParameter: 1, tlsMode: "requireTLS" } )すべてのノードをアップグレードした後、適切な TLS/SSL 設定で構成ファイルを編集し、次回の再起動時にクラスターが TLS/SSL を使用するようにします。
手順(ssl 設定を使用)
重要
TLS/SSL、PKI(公開キー基盤)証明書、認証局についての詳細な説明は、このドキュメントの範囲外です。このページでは、TLS/SSL に関する予備知識があり、有効な証明書にアクセスすることを前提としています。
TLS/SSL 暗号化を使用しない MongoDB クラスターから、TLS/SSL 暗号化のみを使用する MongoDB クラスターにアップグレードするには、次のローリング アップグレード プロセスを使用します。
注意
このセクションの手順では、ssl 設定/オプションを使用します。tls エイリアスを使用する手順については、「TLS/SSL を使用するようにクラスターをアップグレードする」を参照してください。
MongoDB では常に TLS 1.0 以降をサポートしているため、 tlsの設定/オプションはsslオプションと同じ機能を提供します。
For each node of a cluster, start the node with the command-line option
--sslModeor the configuration file optionnet.ssl.modeset toallowSSL. TheallowSSLsetting allows the node to accept both TLS/SSL and non-TLS/non-SSL incoming connections. Its connections to other servers do not use TLS/SSL. Include other TLS/SSL options [1] as well as any other options that are required for your specific configuration.注意
mongodとmongosは、デフォルトで localhost にバインドされます。配置のノードが異なるホスト上で実行されている場合、またはリモート クライアントを配置に接続する場合は、--bind_ipまたはnet.bindIpを指定する必要があります。以下に例を挙げます。
mongod --replSet <name> --sslMode allowSSL --sslPEMKeyFile <path to TLS/SSL Certificate and key PEM file> --sslCAFile <path to root CA PEM file> <additional options>構成ファイルでこれらのオプションを指定するには、 ファイルに次の設定を含めます。
net: ssl: mode: <allowSSL> PEMKeyFile: <path to TLS/SSL certificate and key PEM file> CAFile: <path to root CA PEM file>クラスターのすべてのノードをこれらの設定にアップグレードします。
すべてのクライアントを TLS/SSL 使用に切り替えます。参照: TLS が有効なレプリカセットへの接続。
For each node of a cluster, use the
setParametercommand to update thesslModetopreferSSL. [2] WithpreferSSLas itsnet.ssl.mode, the node accepts both TLS/SSL and non-TLS/non-SSL incoming connections, and its connections to other servers use TLS/SSL. For example:db.adminCommand( { setParameter: 1, sslMode: "preferSSL" } )クラスターのすべてのノードをこれらの設定にアップグレードします。
この時点で、すべての接続は TLS/SSL を使用するはずです。
For each node of the cluster, use the
setParametercommand to update thesslModetorequireSSL. [2] WithrequireSSLas itsnet.ssl.mode, the node rejects any non-TLS/non-SSL connections. For example:db.adminCommand( { setParameter: 1, sslMode: "requireSSL" } )すべてのノードをアップグレードした後、適切な TLS/SSL 設定で構成ファイルを編集し、次回の再起動時にクラスターが TLS/SSL を使用するようにします。
| [2] | (1, 2, 3, 4) As an alternative to using the setParameter command, you can also restart the nodes with the appropriate TLS/SSL options and values. |
| [1] | (1, 2) Windows と macOS のシステム SSL 証明書ストアを使用できます。 システム SSL 証明書ストアを使用するには、以下を使用します。
システムの SSL 証明書ストアを使用する場合、 OCSP(オンライン証明書ステータス プロトコル)を使用して証明書の失効状態を検証します。 |