Ollama の API キー: ローカルの Ollama にはありません。キーを必須にする方法

Munim, Inc. の MV2 による。2026 年 10 月 12 日に Ollama の認証ドキュメント、Ollama FAQ、n8n の Ollama 認証情報のドキュメント、Open WebUI の API ドキュメント、Caddy のマッチャーのドキュメントと照合済み。ご自身のマシンにのみ使ってください。このページは英語の原文から AI で翻訳したものです。内容に食い違いがある場合は原文が優先します。

結論から

Ollama を動かしているマシンの中だけで使うなら、どれも必要ありません。127.0.0.1 のままにしておき、締めるためのチェックリストで確認してください。

方法 A: Open WebUI をすでに動かしているなら、それを入り口にする

Open WebUI は /ollama/ 以下のリクエストを Ollama に中継し、その際に自身の API キーを確認します。Ollama は内部のままで、追加のソフトウェアも要りません。

  1. Open WebUI の Settings > Account(日本語表示では「設定」→「アカウント」)でキーを作成します(キーは sk- で始まります)。項目が見当たらない場合は、まず管理者が API キーを許可する必要があります。Open WebUI の API キーのドキュメントを参照してください。
  2. Open WebUI 経由で Ollama のネイティブ API を呼び出します:
    curl https://webui.example.home/ollama/api/tags -H "Authorization: Bearer sk-..."
    または Open WebUI の OpenAI 互換エンドポイント /api/chat/completions を使います。
  3. n8n では、Ollama の認証情報の Base URL を https://webui.example.home/ollama に、API Key を sk- のキーにします。n8n のドキュメントも、この構成の例として Open WebUI を挙げています。

キーにはその Open WebUI ユーザーの権限が付くので、アプリごとに別のユーザーを作り、Open WebUI を最新に保ってください(Open WebUI のアドバイザリー(英語)を参照)。

方法 B: キーを確認する小さなプロキシ

1. Ollama はローカルのまま、キーを作る

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))"

(どちらか一方のコマンドで十分です。)

2a. Caddy

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
    }
}

LAN 内だけの名前(ollama.home など)の場合: 公開の証明書がないので、サイトブロックの中で tls internal を使い、クライアントに Caddy のルート証明書をインストールします。あるいはプロキシを使わず、Tailscale や WireGuard のようなプライベートネットワークを使います(Ollama をリモートで使うを参照)。信頼できないネットワークで、暗号化されていない http:// でキーを送らないでください。そのネットワークの誰でも読めてしまいます。

2b. nginx

次の内容を /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 に 1 行足します。その後 sudo nginx -t && sudo systemctl reload nginx を実行し、ファイルを root だけが読めるようにします(sudo chmod 600 /etc/nginx/conf.d/ollama.conf。nginx は起動時に root として読み込みます)。

2c. Docker で動かす Ollama

ollama サービスには ports: を一切付けず、Caddy だけを公開します。上の Caddyfile では reverse_proxy ollama:11434 を使います。ollama サービスには、いつもの GPU 設定を追加してください。

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: は書かない。このネットワーク上のコンテナだけが Ollama に届く。)

3. 確認する

# 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 では、Docker が公開したポートを ufw はブロックしません。

アプリを接続する

よくある間違い

代わりに確認してほしい場合

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 キーは送らないでください。