부록 C - 자체 관리형 배포서버 테스트를 위한 OpenSSL 클라이언트 인증서
경고
면책 조항
이 페이지는 테스트 목적으로 만 제공되며 인증서는 테스트 목적으로만 사용됩니다.
다음 튜토리얼에서는 테스트 x.509 인증서를 생성하기 위한 몇 가지 기본 단계를 제공합니다.
이 인증서를 프로덕션용으로 사용하지 마세요. 대신 보안 정책을 따르세요.
OpenSSL에 대한 자세한 내용은 공식 OpenSSL Docs를 참조하세요. 이 튜토리얼에서는 OpenSSL을 사용하지만, 이 자료를 OpenSSL에 대한 신뢰할 수 있는 참고 자료로 간주해서는 안 됩니다.
전제 조건
이 페이지에 설명된 절차에서는 부록 A - 자체 관리 배포서버 테스트를 위한 OpenSSL CA 인증서에 생성된 테스트 중간 기관 인증서와 키 mongodb-test-ia.crt
mongodb-test-ia.key
및 를 사용합니다.
절차
다음 절차에서는 MongoDB 클라이언트에 대한 테스트 인증서를 생성하는 단계를 간략하게 설명합니다. MongoDB 서버에 대한 테스트 인증서를 만드는 단계는 부록 B - 자체 관리형 배포서버 테스트를 위한 OpenSSL 서버 인증서를 참조하세요.
A. OpenSSL 구성 파일 생성
다음 콘텐츠로 클라이언트에 대한 테스트 구성 파일
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 선택 사항. 기본 DN(고유 이름) 값을 업데이트할 수 있습니다. 조직(
O
), 조직 단위(OU
) 또는 도메인 구성 요소(DC
) 속성 중 하나 이상에서 클라이언트 인증서가 서버 인증서와 다른지 확인합니다.
B. 클라이언트에 대한 테스트 PEM 파일 생성
테스트 키 파일
mongodb-test-client.key
을 만듭니다.openssl genrsa -out mongodb-test-client.key 4096 테스트 인증서 서명 요청
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 테스트 클라이언트 인증서
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 클라이언트에 대한 테스트 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>" 키체인 액세스에 인증서를 추가하려면 키체인 액세스 공식 문서를 참조하세요.