Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

付録 B - 自己管理型配置をテストするための OpenSSL サーバー証明書

警告

Disclaimer

このページはテスト目的のみで提供されており、証明書はテスト目的のみ で提供されています。

次のチュートリアルでは、テストx.509 証明書を作成するためのいくつかの基本的な手順を説明します。

  • これらの証明書は本番環境では使用しないでください。 代わりに、セキュリティ ポリシーに従ってください。

  • OpenSSL の詳細については、 公式 OpenSSL Docsを参照してください。 このチュートリアルでは OpenSSL を使用していますが、このドキュメントを OpenSSL の権限のある参照として使用しないでください。

このページで説明されている手順では、テスト中間局証明書とキーmongodb-test-ia.crt mongodb-test-ia.keyで作成された を使用し、

次の手順では、MongoDB サーバーのテスト証明書を作成する手順を概説します。 MongoDB クライアントのテスト証明書を作成する手順については、「付録 C - 自己管理型配置をテストするための OpenSSL クライアント証明書 」を参照してください。

  1. 次の内容でサーバー用のテスト構成ファイル openssl-test-server.cnfを作成します。

    # NOT FOR PRODUCTION USE. OpenSSL configuration file for testing.
    [ req ]
    default_bits = 4096
    default_keyfile = myTestServerCertificateKey.pem ## The default private key file name.
    default_md = sha256
    distinguished_name = req_dn
    req_extensions = v3_req
    [ v3_req ]
    subjectKeyIdentifier = hash
    basicConstraints = CA:FALSE
    keyUsage = critical, digitalSignature, keyEncipherment
    nsComment = "OpenSSL Generated Certificate for TESTING only. NOT FOR PRODUCTION USE."
    extendedKeyUsage = serverAuth, clientAuth
    subjectAltName = @alt_names
    [ alt_names ]
    DNS.1 = ##TODO: Enter the DNS names. The DNS names should match the server names.
    DNS.2 = ##TODO: Enter the DNS names. The DNS names should match the server names.
    IP.1 = ##TODO: Enter the IP address.
    IP.2 = ##TODO: Enter the IP address.
    [ req_dn ]
    countryName = Country Name (2 letter code)
    countryName_default = TestServerCertificateCountry
    countryName_min = 2
    countryName_max = 2
    stateOrProvinceName = State or Province Name (full name)
    stateOrProvinceName_default = TestServerCertificateState
    stateOrProvinceName_max = 64
    localityName = Locality Name (eg, city)
    localityName_default = TestServerCertificateLocality
    localityName_max = 64
    organizationName = Organization Name (eg, company)
    organizationName_default = TestServerCertificateOrg
    organizationName_max = 64
    organizationalUnitName = Organizational Unit Name (eg, section)
    organizationalUnitName_default = TestServerCertificateOrgUnit
    organizationalUnitName_max = 64
    commonName = Common Name (eg, YOUR name)
    commonName_max = 64
  2. [alt_names]セクションで、MongoDB サーバーの適切な DNS 名や IP アドレスを入力します。 MongoDB サーバーには複数の DNS 名を指定できます。

    OpenSSL SAN 識別子の場合、MongoDB は以下をサポートしています。

    • DNS 名や

    • IP アドレス フィールド

  3. 任意。 デフォルトの識別名(DN)値を更新できます。

Tip

  • 次の属性の少なくとも 1 つに空でない値を指定します。組織( O )、組織単位( OU )、またはドメインコンポーネント( DC )。

  • 内部メンバーシップ認証用のテストサーバー証明書を作成する場合、次の属性(指定されている場合)は、組織( O )、組織単位( OU )、ドメインコンポーネント( DC )と完全に一致する必要があります。

    内部メンバーシップ認証の要件の詳細については、「 メンバーシップ認証 」を参照してください

重要

続行する前に、構成ファイルopenssl-test-server.cnf[alt_names]セクションに適切な DNS 名が入力されていることを確認してください。

  1. テストキー ファイルmongodb-test-server1.keyを作成します。

    openssl genrsa -out mongodb-test-server1.key 4096
  2. テスト証明書署名リクエストmongodb-test-server1.csrを作成します。

    [Distinguished Name(識別名)] の値を入力するよう求められたら、テスト証明書に適した値を入力します。

    • 次の属性の少なくとも 1 つに空でない値を指定します。組織( O )、組織単位( OU )、またはドメインコンポーネント( DC )。

    • 内部メンバーシップ認証用のテストサーバー証明書を作成する場合、次の属性(指定されている場合)は、組織( O )、組織単位( OU )、ドメインコンポーネント( DC )と完全に一致する必要があります。

    openssl req -new -key mongodb-test-server1.key -out mongodb-test-server1.csr -config openssl-test-server.cnf
  3. テストサーバー証明書mongodb-test-server1.crtを作成します。

    openssl x509 -sha256 -req -days 365 -in mongodb-test-server1.csr -CA mongodb-test-ia.crt -CAkey mongodb-test-ia.key -CAcreateserial -out mongodb-test-server1.crt -extfile openssl-test-server.cnf -extensions v3_req
  4. サーバーのテストPEM ファイルを作成します。

    cat mongodb-test-server1.crt mongodb-test-server1.key > test-server1.pem

    TLS/SSL テストmongod mongos用に または を構成する際に、 テスト PEM ファイルを使用できます。例:

    mongod --tlsMode requireTLS --tlsCertificateKeyFile test-server1.pem --tlsCAFile test-ca.pem
    macOS の場合、

    証明書を管理するためにキーチェーンアクセスでテストしている場合は、PEM ファイルの代わりにキーチェーンアクセスに追加する pkcs-12 ファイルを作成します。

    openssl pkcs12 -export -out test-server1.pfx -inkey mongodb-test-server1.key -in mongodb-test-server1.crt -certfile mongodb-test-ia.crt

    キーチェーン アクセスに追加すると、証明書鍵ファイルを指定する代わりに、 --tlsCertificateSelectorを使用して使用する証明書を指定できます。 CA ファイルもキーチェーンアクセスにある場合は、 --tlsCAFileを省略することもできます。

    mongod --tlsMode requireTLS --tlsCertificateSelector subject="<TestServerCertificateCommonName>"

戻る

OpenSSL CA