⚠️ 주의사항
- API Key는 공개적으로 노출되지 않게 안전하게 관리해야 합니다.
- 절대 Github, 블로그 등 공개된 장소에 업로드하지 마세요.
계정 생성: OpenAI 웹사이트에 접속하여 계정을 생성합니다.
API 키 획득: 계정 대시보드에서 API 키를 생성합니다. 이 키는 API 요청을 인증하는 데 사용됩니다.
먼저 Openai API 사이트에 들어가신후 회원 가입을 합니다. 회원 가입이 완료되면 https://platform.openai.com/api-keys 링크에서 API Key를 발급 받을 수 있습니다.

오류: Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}
python
import os
print(os.getenv("OPENAI_API_KEY"))
정상적으로 키가 나오면, .env 및 환경변수 로딩이 잘 된 겁니다.
아무것도 출력되지 않거나 None이 뜨면 환경변수 설정을 다시 확인하세요.
export OPENAI_API_KEY=sk-xxxx....
python -c "import os; print(os.getenv('OPENAI_API_KEY'))"
$env:OPENAI_API_KEY="sk-xxxx..."
python -c "import os; print(os.getenv('OPENAI_API_KEY'))"
.env와 python-dotenv를 쓰는 경우 아래처럼 간단한 코드를 하나 test_env.py 같은 파일에 저장하고 실행합니다.from dotenv import load_dotenv
import os
load_dotenv()
print(os.getenv("OPENAI_API_KEY"))
python test_env.py
정상적으로 키가 나오면 연결 OK!
import openai
from dotenv import load_dotenv
import os
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
print(openai.Model.list()) # 정상접속시 모델목록 출력됨
오류 없이 결과가 나오면 키가 살아 있고, 할당도 잘된 것입니다.
빈 값이 나오는 경우
1) .env 파일 위치, 이름, 대문자/소문자 등 오타 없는지
2) load_dotenv() 호출이 누락되지 않았는지
3) 환경변수 명칭이 정확한지 확인
import openai
import os
from dotenv import load_dotenv
import httpx
# .env에서 API키 로딩
load_dotenv()
# SSL 검증 끈 httpx 클라이언트 생성
client = openai.OpenAI(
api_key=os.getenv("OPENAI_API_KEY"),
http_client=httpx.Client(verify=False) # [!] 개발/테스트 용
)
models = client.models.list()
print([m.id for m in models.data])

이 에러는 SSL 인증서 검증 실패 즉,
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain
라는 메시지에서 유추할 수 있듯이,
서버와의 HTTPS 통신에서 인증서 오류(특히 사내 프록시나 방화벽, 셀프사인 인증서 환경에서 자주 발생)를 만난 것입니다.
왜 이런 문제가 생길까요?
- 회사, 학교, 기관 등의 네트워크에서는 자체(또는 프록시) 인증서를 사용할 수 있습니다.
- 이로 인해 python, OpenAI, httpx 등 패키지가 외부 인터넷(https://api.openai.com)에 연결할 때 인증서 신뢰 문제로 거부될 수 있습니다.
테스트 또는 학습 용도로만 사용, 실서비스에서는 권장 X
import openai
import os
from dotenv import load_dotenv
import httpx
load_dotenv()
client = openai.OpenAI(
api_key=os.getenv("OPENAI_API_KEY"),
http_client=httpx.Client(verify=False) # SSL 검증 비활성화 옵션
)
models = client.models.list()
print([m.id for m in models.data])
SET PYTHONHTTPSVERIFY=0 # Windows CMD
$env:PYTHONHTTPSVERIFY=0 # PowerShell
export PYTHONHTTPSVERIFY=0 # Linux/Mac
IT 부서에 회사에서 사용하는 루트 CA(인증서) PEM 파일을 요청
그 인증서를 시스템에 정상 추가(윈도우: 신뢰할 수 있는 루트 인증 기관/리눅스: ca-certificates에 추가)
위 SSL 검증 비활성화는 해커 공격이나 중간자 공격에 취약할 수 있으므로 꼭 신뢰되는 환경에서만 사용하세요.
보안이 중요한 상황(회사 프로젝트 등)에선 반드시 IT팀과 상의해 루트 인증서를 올바르게 추가!
만약 VPN이나 프록시 사용 중이면, 네트워크를 잠시 외부망으로 바꿔서 시도해보는 것도 한 방법입니다.
import openai
import os
from dotenv import load_dotenv
import httpx
# .env에서 API키 로딩
load_dotenv()
# SSL 검증 끈 httpx 클라이언트 생성
client = openai.OpenAI(
api_key=os.getenv("OPENAI_API_KEY"),
http_client=httpx.Client(verify=False) # [!] 개발/테스트 용
)
models = client.models.list()
print([m.id for m in models.data])