문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

부록 C - 테스트용 OpenSSL 클라이언트 인증서

경고

면책 조항

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

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

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

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

이 페이지에 설명된 절차에서는 부록 A - 테스트용 OpenSSL CA 인증서에생성된 테스트 중간 기관 인증서와 키 키를 사용합니다.mongodb-test-ia.crt mongodb-test-ia.key

다음 절차에서는 MongoDB 클라이언트에 대한 테스트 인증서를 만드는 단계를 간략하게 설명합니다. MongoDB Server에 대한 테스트 인증서를 만드는 단계는 부록 B - 테스트용 OpenSSL 서버 인증서를 참조하세요.

  1. 다음 콘텐츠로 클라이언트에 대한 테스트 구성 파일 openssl-test-client.cnf 를 만듭니다.

    # NOT FOR PRODUCTION USE. OpenSSL configuration file for testing.
    [ req ]
    default_bits = 4096
    default_keyfile = myTestClientCertificateKey.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
    [ req_dn ]
    countryName = Country Name (2 letter code)
    countryName_default =
    countryName_min = 2
    countryName_max = 2
    stateOrProvinceName = State or Province Name (full name)
    stateOrProvinceName_default = TestClientCertificateState
    stateOrProvinceName_max = 64
    localityName = Locality Name (eg, city)
    localityName_default = TestClientCertificateLocality
    localityName_max = 64
    organizationName = Organization Name (eg, company)
    organizationName_default = TestClientCertificateOrg
    organizationName_max = 64
    organizationalUnitName = Organizational Unit Name (eg, section)
    organizationalUnitName_default = TestClientCertificateOrgUnit
    organizationalUnitName_max = 64
    commonName = Common Name (eg, YOUR name)
    commonName_max = 64
  2. 선택 사항. 기본 DN(고유 이름) 값을 업데이트할 수 있습니다. 조직(O), 조직 단위(OU) 또는 도메인 구성 요소(DC) 속성 중 하나 이상에서 클라이언트 인증서가 서버 인증서와 다른지 확인합니다.

  1. 테스트 키 파일 mongodb-test-client.key 을 만듭니다.

    openssl genrsa -out mongodb-test-client.key 4096
  2. 테스트 인증서 서명 요청 mongodb-test-client.csr 을 만듭니다. 고유 이름 값을 입력하라는 메시지가 표시되면 테스트 인증서에 적합한 값을 입력합니다.

    중요

    클라이언트 인증서 주체는 조직(O), 조직 단위(OU) 또는 도메인 구성 요소(DC) 속성 중 하나 이상에서 서버 인증서 주체와 달라야 합니다.

    openssl req -new -key mongodb-test-client.key -out mongodb-test-client.csr -config openssl-test-client.cnf
  3. 테스트 클라이언트 인증서 mongodb-test-client.crt 을(를) 생성합니다.

    openssl x509 -sha256 -req -days 365 -in mongodb-test-client.csr -CA mongodb-test-ia.crt -CAkey mongodb-test-ia.key -CAcreateserial -out mongodb-test-client.crt -extfile openssl-test-client.cnf -extensions v3_req
  4. 클라이언트에 대한 테스트 PEM 파일을 만듭니다.

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

    테스트 PEM 파일을 사용하여 TLS/SSL 테스트 를mongosh 위해 를 구성할 수 있습니다. 예를 들어 mongod mongos 또는에 연결합니다.

    예제

    MongoDB 4.2 이상의 경우 클라이언트에 대한 다음 옵션을 포함합니다.

    mongosh --tls --host <serverHost> --tlsCertificateKeyFile test-client.pem --tlsCAFile test-ca.pem

    예제

    MongoDB 4.0 이하의 경우* 클라이언트에 대해 다음 옵션을 포함합니다.

    mongosh --ssl --host <serverHost> --sslPEMKeyFile test-client.pem --sslCAFile test-ca.pem
    macOS에서는

    키체인 접근으로 인증서를 managed하여 테스트 하는 경우, PEM 파일 대신 키체인 접근에 추가할 PKCS 12 파일을 생성합니다.

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

    키체인 액세스에 추가한 후에는 인증서 키 파일을 지정하는 대신 --tlsCertificateSelector 를 사용하여 사용할 인증서를 지정할 수 있습니다. CA 파일이 키체인 액세스에도 있는 경우 다음 예와 마찬가지로 --tlsCAFile 를 생략할 수 있습니다.

    MongoDB 4.2 이상의 경우

    mongosh --tls --tlsCertificateSelector subject="<TestClientCertificateCommonName>"

    --ssl--sslCertificateSelector 는 계속 사용할 수 있지만 MongoDB 4 부터 더 이상 사용되지 않습니다.2.

    MongoDB 4.0 이하의 경우

    mongosh --ssl --sslCertificateSelector subject="<TestClientCertificateCommonName>"

    키체인 액세스에 인증서를 추가하려면 키체인 액세스 공식 문서를 참조하세요.

← 부록 B - 테스트용 OpenSSL 서버 인증서