Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

부록 B - 자체 관리 배포서버 테스트를 위한 OpenSSL 서버 인증서

경고

면책 조항

이 페이지는 테스트 목적으로 만 제공되며 인증서는 테스트 목적으로만 사용됩니다.

다음 튜토리얼에서는 테스트 x.509 인증서를 생성하기 위한 몇 가지 기본 단계를 제공합니다.

  • 이 인증서를 프로덕션용으로 사용하지 마세요. 대신 보안 정책을 따르세요.

  • OpenSSL에 대한 자세한 내용은 공식 OpenSSL Docs를 참조하세요. 이 튜토리얼에서는 OpenSSL을 사용하지만, 이 자료를 OpenSSL에 대한 신뢰할 수 있는 참고 자료로 간주해서는 안 됩니다.

이 페이지에 설명된 절차에서는 부록 A - 자체 관리 배포서버 테스트를 위한 OpenSSL CA 인증서에 생성된 테스트 중간 기관 인증서와 키 mongodb-test-ia.crtmongodb-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. In the [alt_names] section, enter the appropriate DNS names and/or IP addresses for the MongoDB server. You can specify multiple DNS names for a MongoDB server.

    OpenSSL SAN 식별자의 경우 MongoDB는 다음을 지원합니다.

    • DNS 이름 및/또는

    • IP 주소 필드

  3. 선택 사항입니다. 기본 DN(고유 이름) 값을 업데이트할 수 있습니다.

  • 조직(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 을 만듭니다.

    고유 이름 값을 입력하라는 메시지가 표시되면 테스트 인증서에 적합한 값을 입력합니다.

    • 조직(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 테스트 mongos 를 위해 또는 를 구성할 때 mongod 테스트 PEM 파일을 사용할 수 있습니다. 예를 들면 다음과 같습니다.

    예시

    mongod --tlsMode requireTLS --tlsCertificateKeyFile test-server1.pem --tlsCAFile test-ca.pem
    macOS에서는

    키체인 액세스로 인증서를 managed하여 테스트 하는 경우 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