Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ /

x를 사용합니다. 자체 관리형 배포서버에서 클라이언트를 인증하기 위한 509 인증서

이 페이지의 내용

  • 전제 조건
  • 절차
  • 다음 단계

다음 절차는 x를509 설정합니다. 독립형 인스턴스 에서 클라이언트 인증 을 위한 인증서 인증 .mongod 이는 상호 TLS 또는 mTLS라고도 합니다.

복제본 세트 또는 분할 클러스터에 x.509 인증을 사용하려면 자체 관리 MongoDB를 사용한 멤버십 인증을 위해 x.509 인증서 사용을 참조하세요.

TLS/SSL, PKI(공개 키 기반 구조) 인증서, 특히 x.509 인증서 및 인증 기관에 대한 자세한 설명은 이 문서에 설명되어있지 않습니다.이 튜토리얼은 유효한 x.509 인증서에 액세스할 수 있고, TLS/SSL에 대한 딕셔너리 지식을 갖고 있다고 가정합니다.

프로덕션 용도의 경우 MongoDB deployment는 동일한 인증 기관에서 생성하고 서명한 유효한 인증서를 사용해야 합니다. 귀하 또는 귀하의 조직은 독립적인 인증 기관을 생성 및 유지 관리하거나 타사 TLS 공급업체에서 생성한 인증서를 사용할 수 있습니다. 인증서를 얻고 관리하는 것은 이 문서의 범위를 벗어납니다.

--tlsCertificateSelector 또는 --net.tls.certificateSelector을(를) 사용하지 않는 한, x.509 인증을 사용하려면 반드시 --tlsCAFile 또는 net.tls.CAFile을(를) 지정해야 합니다.

유효한 x.509 인증서가 있어야 합니다. 클라이언트 x.509 인증서는 클라이언트 인증서 요구 사항을 충족해야 합니다.

--tlsAllowInvalidCertificates 또는 net.tls.allowInvalidCertificates: true를 지정하는 경우 잘못된 인증서로 TLS 연결을 설정할 수는 있지만 인증에는 충분하지 않습니다.

1

명령줄에서 x.509 인증을 위한 mongod 인스턴스를 구성할 수 있습니다.

독립형 mongod 인스턴스를 구성하려면 다음 명령을 실행합니다.

mongod --tlsMode requireTLS \
--tlsCertificateKeyFile <path to TLS/SSL certificate and key PEM file> \
--tlsCAFile <path to root CA PEM file> --bind_ip <hostnames>

구성에 필요한 추가 옵션을 포함하세요.

x.509 구성에는 다음이 필요합니다:

옵션
참고 사항

requireTLS를 지정합니다.

클라이언트에 제공할 인스턴스의 x.509 인증서를 지정합니다.

인스턴스에 제공된 인증서를 확인하려면 인증 기관 파일을 지정하세요.

구성 파일의 x.509 인증에 대해 mongod을(를) 구성할 수 있습니다.

독립형 mongod 인스턴스를 구성하려면 구성 파일에 다음 구성 옵션을 추가하세요.

net:
tls:
mode: requireTLS
certificateKeyFile: <path to TLS/SSL certificate and key PEM file>
CAFile: <path to root CA PEM file>

구성에 필요한 추가 옵션을 포함하세요.

x.509 구성에는 다음이 필요합니다:

옵션
참고 사항

requireTLS를 지정합니다.

클라이언트에 제공할 인스턴스의 x.509 인증서를 지정합니다.

인스턴스에 제공된 인증서를 확인하려면 인증 기관 파일을 지정하세요.

복제본 세트 또는 샤딩된 클러스터에 대한 x.509 인증을 설정하려면 자체 관리 MongoDB를 사용한 멤버십 인증을 위해 x.509 인증서 사용을 참조하세요.

2

클라이언트 인증서를 사용하여 인증하려면 먼저 클라이언트 인증서의 subject 값을 MongoDB 사용자로 $external 데이터베이스에 추가해야 합니다. 각각의 고유한 x.509 클라이언트 인증서는 단일 MongoDB 사용자에 해당합니다. 단일 클라이언트 인증서를 사용하여 둘 이상의 MongoDB 사용자를 인증할 수 없습니다.

참고

사용자 이름 요구 사항

  1. 다음 명령을 사용하여 클라이언트 인증서에서 RFC2253 형식의 subject를 가져올 수 있습니다.

    openssl x509 -in <pathToClientPEM> -inform PEM -subject -nameopt RFC2253

    이 명령은 subject 문자열과 인증서를 반환합니다.

    subject= CN=myName,OU=myOrgUnit,O=myOrg,L=myLocality,ST=myState,C=myCountry
    -----BEGIN CERTIFICATE-----
    # ...
    -----END CERTIFICATE-----
  2. subjectRFC2253 규격 값을 사용자로 추가합니다. 필요에 따라 공백을 생략합니다.

    다음 예시는 사용자를 추가하고 해당 사용자에게 test 데이터베이스에서 readWrite 역할과 userAdminAnyDatabase 역할을 부여합니다.

    db.getSiblingDB("$external").runCommand(
    {
    createUser: "CN=myName,OU=myOrgUnit,O=myOrg,L=myLocality,ST=myState,C=myCountry",
    roles: [
    { role: "readWrite", db: "test" },
    { role: "userAdminAnyDatabase", db: "admin" }
    ],
    writeConcern: { w: "majority" , wtimeout: 5000 }
    }
    )

    역할이 있는 사용자를 추가하는 방법에 대한 자세한 내용은 자체 관리형 배포서버에서 사용자 및 역할 관리를 참조하세요.

3

x.509 클라이언트 인증서 주체를 해당 MongoDB 사용자로 추가한 후 클라이언트 인증서로 인증할 수 있습니다.

연결 중에 인증하려면 다음 명령을 실행합니다:

mongosh --tls --tlsCertificateKeyFile <path to client PEM file> \
--tlsCAFile <path to root CA PEM file> \
--authenticationDatabase '$external' \
--authenticationMechanism MONGODB-X509
옵션
참고 사항

클라이언트의 x.509 파일을 지정합니다.

mongod 인스턴스에서 제공한 인증서를 확인하려면 인증 기관 파일을 지정하세요.

'$external'를 지정합니다.

MONGODB-X509를 지정합니다.

인증 없이 연결할 수 있으며 연결 후 db.auth() 메서드를 사용하여 인증할 수 있습니다.

예를 들어, mongosh을(를) 사용하는 경우

  1. mongodmongosh을(를) 연결합니다.

    mongosh --tls --tlsCertificateKeyFile <path to client PEM file> \
    --tlsCAFile <path to root CA PEM file>
    옵션
    참고 사항

    클라이언트의 x.509 파일을 지정합니다.

    mongod 또는 mongos 인스턴스에서 제공한 인증서를 확인하려면 인증 기관 파일을 지정하세요.

  2. 인증하려면 $external 데이터베이스의 db.auth() 메서드를 사용합니다. mechanism 필드에 "MONGODB-X509"을(를) 지정합니다.

    db.getSiblingDB("$external").auth(
    {
    mechanism: "MONGODB-X509"
    }
    )

복제본 세트 또는 분할 클러스터에 x.509 인증을 사용하려면 자체 관리 MongoDB를 사용한 멤버십 인증을 위해 x.509 인증서 사용을 참조하세요.

돌아가기

x.509

이 페이지의 내용