Munim, Inc.의 MV2 작성. 2026년 10월 12일에 Ollama 인증 문서, Ollama FAQ, n8n Ollama 자격 증명 문서, Open WebUI API 문서, Caddy matcher 문서와 대조해 확인했습니다. 본인의 컴퓨터에만 사용하세요. 이 페이지는 영어 원문을 AI로 번역한 것입니다. 내용이 다를 경우 원문이 우선합니다.
OLLAMA_API_KEY는 ollama.com용입니다. Ollama의 클라우드 서비스 키로, ollama.com 설정에서 만들어 https://ollama.com/api로 보냅니다. 여러분의 서버를 보호하지는 않습니다.http://localhost:11434 does not require authentication."(로컬 API는 인증이 필요 없다)라고 쓰여 있습니다. 인증을 켜는 설정은 없습니다. 11434 포트에 닿는 사람은 누구나 여러분의 GPU로 프롬프트를 돌리고 모델을 내려받거나 만들거나 삭제할 수 있습니다.127.0.0.1에 두고, Authorization: Bearer <key> 헤더를 검사하는 리버스 프록시를 유일한 출입구로 만듭니다. "API key" 칸을 채우면 OpenAI 방식 클라이언트, n8n, Open WebUI가 보내는 것이 바로 이 헤더입니다.Ollama를 실행 중인 그 컴퓨터에서만 쓴다면 이 모든 것이 필요 없습니다. 127.0.0.1에 그대로 두세요. 확인 방법은 보안 체크리스트에 있습니다.
Open WebUI는 /ollama/ 아래로 들어온 요청을 Ollama로 전달하며, 자체 API 키를 검사합니다. Ollama는 내부에 남고 추가 소프트웨어도 필요 없습니다.
sk-로 시작). 이 옵션이 보이지 않으면 먼저 관리자가 API 키를 허용해야 합니다. Open WebUI의 API 키 문서를 참고하세요.curl https://webui.example.home/ollama/api/tags -H "Authorization: Bearer sk-..."또는 Open WebUI의 OpenAI 호환 엔드포인트
/api/chat/completions를 씁니다.https://webui.example.home/ollama로, API Key를 sk- 키로 설정합니다. n8n 문서도 이 구성의 예로 Open WebUI를 들고 있습니다.키는 해당 Open WebUI 사용자의 권한을 그대로 가지므로 앱마다 별도의 사용자를 만들고, Open WebUI를 최신으로 유지하세요(Open WebUI 보안 권고(영어) 참고).
Ollama는 127.0.0.1:11434(기본값)에서 대기해야 합니다. 예전에 OLLAMA_HOST=0.0.0.0을 설정했다면 체크리스트 2단계대로 되돌리세요. 그러지 않으면 사람들이 11434 포트로 바로 들어와 프록시를 건너뛸 수 있습니다. 그다음 길고 무작위한 키를 만듭니다:
openssl rand -hex 32 # or python3 -c "import secrets; print(secrets.token_urlsafe(32))"
(# or는 "또는"이라는 뜻으로, 둘 중 하나만 실행하면 됩니다.)
ollama.example.com이 이 컴퓨터를 가리키는 실제 도메인이면 Caddy가 HTTPS 인증서를 알아서 받아 옵니다. 도메인과 PASTE_YOUR_KEY_HERE(여기에 키를 붙여 넣음)를 바꾸세요:
ollama.example.com {
@key header Authorization "Bearer PASTE_YOUR_KEY_HERE"
handle @key {
reverse_proxy 127.0.0.1:11434 {
header_up Host localhost:11434
header_up -Authorization
}
}
handle {
respond "Missing or wrong API key" 401
}
}
header matcher는 정확히 일치해야 하므로 Bearer, 공백 하나, 그리고 정확한 키만 통과합니다. 사람이나 앱마다 다른 키를 주려면 @key { ... } 블록 안에 header Authorization "Bearer ..." 줄을 더 추가하세요. Caddy는 같은 헤더의 값들을 OR로 묶습니다.header_up Host localhost:11434는 Ollama FAQ의 프록시 예시를 따른 것입니다. Ollama는 다른 Host 값으로 들어온 요청을 거부할 수 있습니다. header_up -Authorization은 키가 Ollama로 넘어가지 않게 합니다.reverse_proxy 블록 안에 flush_interval -1을 추가하세요.sudo chown root:caddy /etc/caddy/Caddyfile && sudo chmod 640 /etc/caddy/Caddyfile && sudo systemctl reload caddyLAN 전용 이름(예: ollama.home): 공인 인증서가 없으므로 사이트 블록 안에 tls internal을 쓰고 Caddy의 루트 인증서를 클라이언트에 설치하세요. 아니면 프록시 없이 Tailscale이나 WireGuard 같은 사설 네트워크를 쓰세요. 믿을 수 없는 네트워크에서 일반 http://로 키를 보내지 마세요. 그 네트워크의 누구나 키를 읽을 수 있습니다.
다음을 /etc/nginx/conf.d/ollama.conf에 넣습니다. conf.d의 파일은 http 블록 안에서 읽히며, map은 그곳에 있어야 합니다. 인증서 경로는 본인 것으로 바꾸세요(예: certbot으로 받은 것):
map $http_authorization $ollama_key_ok {
default 0;
"Bearer PASTE_YOUR_KEY_HERE" 1;
}
server {
listen 443 ssl;
server_name ollama.example.com;
ssl_certificate /etc/letsencrypt/live/ollama.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ollama.example.com/privkey.pem;
location / {
if ($ollama_key_ok = 0) { return 401; }
proxy_pass http://127.0.0.1:11434;
proxy_set_header Host localhost:11434;
proxy_set_header Authorization ""; # don't pass the key on to Ollama
proxy_buffering off; # stream tokens as they come
proxy_read_timeout 600s; # long generations
client_max_body_size 0; # model uploads (ollama create)
}
}
(주석의 뜻: 키를 Ollama로 넘기지 않음, 토큰을 오는 대로 스트리밍, 긴 생성 작업용, 모델 업로드(ollama create)용.) 키를 추가할 때마다 map에 한 줄씩 넣으세요. 그다음 sudo nginx -t && sudo systemctl reload nginx를 실행하고, 파일은 root만 읽을 수 있게 하세요(sudo chmod 600 /etc/nginx/conf.d/ollama.conf. nginx는 시작할 때 root로 이 파일을 읽습니다).
ollama 서비스에는 ports:를 아예 주지 말고 Caddy만 공개하세요. 위 Caddyfile에서는 reverse_proxy ollama:11434를 씁니다. 평소의 GPU 설정은 ollama 서비스에 추가하세요.
services:
ollama:
image: ollama/ollama
volumes: [ "ollama:/root/.ollama" ]
# no "ports:" - only containers on this network can reach it
caddy:
image: caddy:2
ports: [ "80:80", "443:443" ]
volumes: [ "./Caddyfile:/etc/caddy/Caddyfile:ro", "caddy_data:/data" ]
volumes:
ollama: {}
caddy_data: {}
(주석의 뜻: ports:를 쓰지 않는다. 이 네트워크의 컨테이너만 닿을 수 있다.)
# no key: should print 401
curl -s -o /dev/null -w "%{http_code}\n" https://ollama.example.com/api/version
# with the key: should print {"version":"..."}
curl -H "Authorization: Bearer YOUR_KEY" https://ollama.example.com/api/version
# from ANOTHER machine, straight to Ollama: should fail to connect
curl http://<server LAN IP>:11434/api/version
(주석의 뜻: 키 없이는 401이 출력되어야 함, 키를 넣으면 버전이 출력되어야 함, 다른 컴퓨터에서 Ollama로 직접 접속하면 연결에 실패해야 함. YOUR_KEY는 본인의 키, <server LAN IP>는 서버의 LAN IP로 바꿉니다.) 마지막 명령이 버전으로 응답한다면 프록시를 우회할 수 있다는 뜻입니다. OLLAMA_HOST와 Docker ports:를 다시 확인하세요. Linux에서 ufw는 Docker가 공개한 포트를 막지 않습니다.
https://ollama.example.com으로 설정하고, Key 칸에 키를 넣습니다(Bearer 토큰으로 전송됨). 사용 중인 버전에 Ollama 연결용 Key 칸이 없다면 대신 OpenAI API 연결로 URL https://ollama.example.com/v1과 키를 추가하세요.https://ollama.example.com으로, API Key를 본인의 키로 설정합니다. n8n은 이를 Authorization: Bearer로 보냅니다.https://ollama.example.com/v1로, API 키를 본인의 키로 설정합니다.
from openai import OpenAI
client = OpenAI(base_url="https://ollama.example.com/v1", api_key="YOUR_KEY")
reply = client.chat.completions.create(
model="llama3.2", messages=[{"role": "user", "content": "Hello"}])
print(reply.choices[0].message.content)from ollama import Client
client = Client(host="https://ollama.example.com",
headers={"Authorization": "Bearer YOUR_KEY"})
print(client.list())ollama 명령: 이번 확인 시점에는 사용자 지정 호스트로 본인의 키를 보내게 하는 문서화된 방법이 없습니다. 서버에서 직접 실행하거나 curl 또는 위의 라이브러리를 쓰세요.basic_auth 예시는 브라우저와 curl -u에는 통하지만, OpenAI 방식 클라이언트, n8n, Open WebUI는 Authorization: Bearer를 보내므로 Basic 인증에서 거부됩니다. API 클라이언트에는 이 페이지의 키 검사를 쓰세요.OLLAMA_ORIGINS는 좁게 유지하세요(브라우저 점검(영어)).Munim, Inc.의 MV2는 컴퓨터 1대를 위한 로컬 AI 상태 점검(49달러)과, 최대 5대 또는 공유 Ollama·Open WebUI 서버 1대를 위한 소규모 사무실 점검(199달러)을 제공합니다. 무엇이 노출되어 있고 무엇이 위험하거나 느린지, 무엇부터 고쳐야 하는지를 여러분의 OS에 맞는 정확한 명령과 함께 보고서로 드립니다. 보고서는 영어로 작성됩니다. 보고서 샘플을 보세요. Stripe에서 49달러 결제 또는 199달러 결제 후, munimversion2@gmail.com으로 무료 스크립트 local-ai-checkup의 python3 local_ai_checkup.py --json 출력, 사용 중인 OS, 용도를 이메일로 보내 주세요. MV2는 비밀번호, 키, 원격 접속을 절대 요청하지 않으니 API 키는 보내지 마세요.