OpenAI Mutual TLS를 사용하면 조직에서 OpenAI API 트래픽에 추가 보안 계층을 구성할 수 있습니다. 구성이 완료되면 API 요청은 https://mtls.api.openai.com (또는 EU 데이터 레지던시 고객의 경우 https://mtls-eu.api.openai.com)로 보내야 하며, 올바른 API 키와 클라이언트 인증서가 제공된 경우에만 트래픽이 허용됩니다. mTLS는 https://platform.openai.com 대시보드에는 적용되지 않습니다. 이 기능은 현재 베타 상태입니다.
mTLS 통합은 어떻게 설정하나요?
설정 탐색 모음에서 “Mutual TLS” 탭을 볼 수 있습니다.
인증서 업로드
인증서 활성화
인증서를 업로드한 후 다음 단계는 인증서를 활성화하는 것입니다. 프로젝트에 인증서가 활성화되면 해당 프로젝트로 가는 모든 API 요청에 상응하는 클라이언트 인증서도 필요하게 됩니다. 프로젝트에 여러 인증서가 활성화되어 있는 경우, 해당되는 클라이언트 인증서 중 아무 것이나 전달할 수 있습니다. 조직에 인증서가 활성화되면 모든 API 요청에 적용되며, 모든 프로젝트에 “상속”됩니다.
CA 인증서 요구 사항
다음 요구 사항을 충족하는 PEM 형식의 X.509 CA 인증서는 모두 업로드할 수 있습니다:
요청에 사용할 예정인 클라이언트 인증서를 직접 서명해야 합니다
Certificate Authority, Subject Key Identifier, Authority Key Identifier(KeyIdentifier 형식) 확장을 포함해야 합니다
Key Usage: “Certificate Sign, CRL Sign” 권한이 있어야 합니다
1일 이내에 만료되도록 설정되어 있지 않아야 합니다
인증서 총 크기는 16kb 미만이어야 합니다.
클라이언트 인증서 요구 사항
클라이언트 인증서는 사전에 업로드한 인증서에 의해 직접 서명되어야 합니다. 현재는 단일 길이 인증서 체인만 지원합니다. 이 외에도 클라이언트 인증서는 다음 요구 사항을 충족해야 합니다:
Subject Key Identifier 및 Authority Key Identifier 확장(KeyIdentifier 형식)이 있어야 합니다
Key Usage: “Digital Signature, Key Encipherment” 권한이 있어야 합니다
Extended Key Usage: “TLS Web Client Authentication” 권한이 있어야 합니다
Subject Alternate Name 확장이 있어야 합니다
FAQ
API를 통해 mTLS를 구성할 수 있나요?
예 — 자세한 내용은 https://platform.openai.com/docs/api-reference/의 API 레퍼런스를 참조하세요.
어떤 엔드포인트가 mTLS를 지원하나요?
이 베타 기간 동안 mTLS는 공식적으로 다음에서 지원됩니다
/v1/chat/completions (지원되는 모든 확장 포함: 예: image, audio, streaming 등)/v1/completions/v1/embeddings/v1/audio/transcriptions/v1/audio/speech/v1/files/v1/batches/v1/responses/v1/images/v1/moderations/v1/realtime (서버 측 웹소켓을 통해)/v1/fine_tuning/v1/tunnels
요청과 함께 클라이언트 인증서는 어떻게 보내나요?
cURL 요청의 경우 --cert 및 --key 옵션을 사용할 수 있습니다(매뉴얼 페이지는 여기 참조). 대부분의 다른 HTTP 클라이언트에서도 클라이언트 인증서를 전달하는 방법이 있습니다. 예: Python의 requests, JS의 fetch. 공식 SDK를 통해 HTTP 클라이언트 재정의도 지원합니다 — Python 예시는 여기를 참조하세요.
프로덕션 트래픽에 mTLS를 적용하기 전에, 사용 중인 HTTP 클라이언트가 클라이언트 인증서 요청을 잘 처리하는지 확인하세요(일부는 특정 브라우저의 WebSockets처럼 그렇지 않습니다). 참고로 저희 서버는 클라이언트 인증서 요청에서 certificate_authorities 목록을 제공하지 않습니다.
누가 인증서에 접근하고 수정할 수 있나요?
https://platform.openai.com/settings/organization/mtls 대시보드 UI를 통해 조직 소유자가 인증서에 접근하고 수정할 수 있습니다. Admin API Key(https://platform.openai.com/settings/organization/admin-keys)가 있는 사람도 인증서에 접근/수정할 수 있습니다. 단, 조직 수준에서 Mutual TLS를 활성화하면 이러한 API 요청에도 인증서가 강제 적용된다는 점에 유의하세요. 모든 mTLS 변경 사항은 감사 로그에 표시됩니다.
인증서는 몇 개까지 가질 수 있나요?
각 조직은 최대 50개의 인증서를 업로드할 수 있으며, 프로젝트 간 공유는 가능하지만 다른 조직과는 공유할 수 없습니다. 한 번에 10개 프로젝트에 대해 인증서를 원자적으로 활성화/비활성화할 수 있습니다. 또는 조직 전체나 특정 프로젝트 1개에 대해 한 번에 10개의 인증서를 활성화/비활성화할 수 있습니다.
인증서를 업데이트하거나 삭제할 수 있나요?
인증서 이름은 업데이트할 수 있지만 내용은 업데이트할 수 없습니다. 현재 어떤 범위에서도 활성 상태가 아니라면 인증서를 삭제할 수도 있습니다.
인증서 폐기는 어떻게 작동하나요?
현재는 CRL 또는 OCSP 스테이플링을 지원하지 않습니다. 대신 권장되는 방법은 API 키를 삭제하거나 교체하는 것입니다. CA 인증서를 교체하거나 유효 기간이 더 짧은 클라이언트 인증서를 사용할 수도 있습니다.
더 긴 인증서 체인을 사용할 수 있나요?
현재는 단일 길이 체인만 지원합니다 — 즉, CA 인증서가 클라이언트 인증서에 직접 서명해야 합니다. 추가 질문이 있으면 Account Director에게 문의해 주세요.
권장 설정은 무엇인가요?
이 기능을 처음 설정할 때는 공식 프로덕션 트래픽을 처리하지 않는 스테이징 프로젝트로 시작하는 것을 권장합니다. 이 기회에 인증서가 각 시스템에 올바르게 설정되어 있고 API 트래픽을 성공적으로 보낼 수 있는지 확인하세요. 이와 별도로, 요구 사항을 가장 잘 이해하기 위해 조직의 보안 팀과 상의할 것을 권장합니다.
추가 지원
대시보드와 API를 통해 mTLS 기능을 완전히 셀프서비스로 이용할 수 있습니다. 하지만 처음에는 섀도 모드로 mTLS를 활성화하고 싶다면, Account Director에게 문의하거나 이 페이지 오른쪽 하단에서 새 채팅을 시작해 지원 티켓을 열어 주세요.
부록: 용어
CA 인증서: 요청과 함께 보낼 클라이언트 인증서에 직접 서명한 신뢰된 인증서 중 하나입니다. 자체 서명된 CA 인증서를 사용해도 됩니다.
인증서 업로드: 계정에 CA 인증서를 추가하는 것입니다. 아직 어떤 곳에서도 mTLS에 적용되지는 않지만, 구성을 시작할 수 있습니다.
범위: 특정 프로젝트 또는 조직 전체.
범위에서 CA 인증서 활성화: 해당 범위에 대해 mTLS를 활성화하며, 모든 API 키 기반 요청에는 그 CA 인증서로 서명된 클라이언트 인증서가 필요합니다.
범위에서 CA 인증서 비활성화: 이 범위에서 요청 검증에 이 인증서를 사용하는 것을 비활성화합니다. 해당 범위에 인증서가 하나도 남아 있지 않으면 mTLS는 사실상 꺼집니다.
인증서 상속: 조직에 대해 인증서를 활성화하면 모든 프로젝트에도 활성화됩니다.
