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

부록 C - 자체 관리형 배포서버 테스트를 위한 OpenSSL 클라이언트 인증서

경고

면책 조항

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

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

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

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

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

다음 절차에서는 MongoDB 클라이언트에 대한 테스트 인증서를 생성하는 단계를 간략하게 설명합니다. MongoDB 서버에 대한 테스트 인증서를 만드는 단계는 부록 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 에 연결합니다.

    예시

    클라이언트에 대해 다음 옵션을 포함합니다.

    mongosh --tls --host <serverHost> --tlsCertificateKeyFile test-client.pem --tlsCAFile 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 를 생략할 수 있습니다.

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

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

다음도 참조하세요.

돌아가기

OpenSSL 서버