SSL/TLS 및 X.509 인증서
개요
이 가이드에서는 MongoDB Kafka Connector 작업자와 MongoDB cluster 간의 통신을 보호하는 방법을 배울 수 있습니다.
연결을 보호하려면 다음 작업을 수행해야 합니다.
참고
MongoDB Atlas 에서 MongoDB cluster 를 호스팅하다 하거나 클러스터 에 인증서가 명시적으로 필요하지 않은 경우, 이미 안전하게 통신할 수 있으며 이 가이드 의 단계를 따를 필요가 없습니다.
전제 조건
이 가이드를 사용하려면 다음 개념에 대한 사전 지식이 필요합니다.
작업자에 인증서 저장
connector 작업자 인스턴스를 실행하는 각 서버에 대한 인증서 자격 증명을 보호하기 위해 키 저장소 및 신뢰 저장소 에 인증서를 저장합니다.
키 저장소
키 저장소를 사용하여 개인 키와 ID 인증서를 저장할 수 있습니다. 키 저장소는 키와 인증서를 사용하여 외부 호스트에 대해 클라이언트의 ID를 확인합니다.
작업자 인스턴스에 연결하기 위해 클라이언트 인증서가 SSL/TLS 구성에 필요한 경우, 보안 비공개 키를 생성하고 중간 CA와 함께 번들로 제공되는 클라이언트 인증서를 포함합니다. 그런 다음 openssl
명령을 사용하여 PKCS 12 파일을 생성하여 이 정보를 키 저장소에 저장합니다.
openssl pkcs12 -export -inkey <your private key> \ -in <your bundled certificate> \ -out <your output pkcs12 file>
신뢰 저장소
신뢰 저장소를 사용하여 CA의 인증서를 저장할 수 있습니다. 신뢰 저장소는 인증서를 사용하여 클라이언트가 신뢰하는 당사자를 식별합니다. 이러한 인증서의 몇 가지 예로는 루트 CA, 중간 CA 및 MongoDB cluster의 최종 엔티티 인증서를 들 수 있습니다.
다음 keytool
명령을 사용하여 신뢰하는 당사자의 인증서를 신뢰 저장소로 가져옵니다.
keytool -import -trustcacerts -import -file <your root or intermediate CA>
SSL/TLS 구성에 MongoDB cluster에 대한 최종 엔터티 인증서가 필요한 경우 다음 명령을 사용하여 이를 신뢰 저장소로 가져옵니다.
keytool -import -file <your server bundled certificate> -keystore <your keystore name>
테스트 목적으로 클라이언트 키 저장소 및 신뢰 저장소를 설정하는 방법에 대한 자세한 내용은 테스트용 OpenSSL 클라이언트 인증서를 참조하세요.
connector에 자격 증명 추가
커넥터 작업자는 KAFKA_OPTS
환경 변수에서 JVM 옵션을 처리합니다. 환경 변수에는 키 저장소 및 신뢰 저장소의 경로와 비밀번호가 포함됩니다.
KAFKA_OPTS
변수에 있는 다음 JVM 옵션을 내보냅니다.
export KAFKA_OPTS="\ -Djavax.net.ssl.trustStore=<your path to truststore> \ -Djavax.net.ssl.trustStorePassword=<your truststore password> \ -Djavax.net.ssl.keyStore=<your path to keystore> \ -Djavax.net.ssl.keyStorePassword=<your keystore password>"
작업자가 JVM 옵션을 처리할 때 connector는 키 저장소 및 신뢰 저장소의 SSL/TLS 프로토콜과 인증서를 사용하여 연결을 시도합니다.