Azure Database for PostgreSQL에서의 TLS 인증서 고정과 모범 사례
TLS는 Azure Database for PostgreSQL에서 클라이언트와 서버 간의 데이터를 암호화하며, 서버 인증서는 신뢰할 수 있는 CA에서 발급됩니다. 인증서 고정(Certificate pinning)은 특정 인증서로만 신뢰를 제한하는 클라이언트 측 보안 방법으로, 기본 신뢰 저장소와는 다릅니다. 서버는 클라이언트에서 고정이 구성되었는지 감지할 수 없으며, TLS 핸드셰이크의 성공 또는 실패만 관찰할 수 있습니다. 인증서 고정은 과거 중간자 공격 방지에 사용되었지만, 특히 인증서 로테이션 시 운영상의 취약점을 야기합니다. 서버 인증서 또는 CA가 변경되면 고정된 클라이언트는 연결 실패를 경험합니다. 대신, 개별 인증서보다는 루트 CA를 신뢰하는 CA 기반 신뢰 모델이 권장됩니다. 클라이언트는 Azure에 문서화된 루트 CA에 대해 표준 TLS 유효성 검사를 사용하고 유연하고 최신 상태의 신뢰 저장소를 유지해야 합니다. sslmode=verify-ca 또는 sslmode=verify-full과 같은 PostgreSQL 구성은 고정을 암시하지 않고 신뢰할 수 있는 CA에 대해 유효성을 검사하므로 선호됩니다. CA 로테이션 중에는 전환이 완료될 때까지 기존 CA를 유지하면서 새로운 루트 CA를 추가해야 합니다. 이 결합된 CA 접근 방식은 중단 없는 유효성 검사를 보장하여 애플리케이션이 인증서 변경에 탄력적으로 대처할 수 있도록 합니다.