> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/deployment/ja/serufuhosuto/inference-server/configuration/https.md).

# HTTPS で Inference を提供する

独自の TLS 証明書と秘密鍵を指定すると、Inference サーバーは HTTPS を直接提供できます。これは、コンテナの前面に TLS 終端のリバースプロキシを置けないセルフホスト型デプロイで便利です。

HTTPS はすべて環境変数で設定します。

## 環境変数

| 変数                     | 説明                                                      | デフォルト                             |
| ---------------------- | ------------------------------------------------------- | --------------------------------- |
| `ENABLE_HTTPS`         | マスタースイッチ。次に設定するのは `True`, `1`、または `yes` HTTPS を有効にするには。 | `False`                           |
| `SSL_CERTFILE`         | PEM 形式でエンコードされた証明書への、コンテナ内のパス。                          | `/etc/inference/certs/server.crt` |
| `SSL_KEYFILE`          | PEM 形式でエンコードされた秘密鍵への、コンテナ内のパス。                          | `/etc/inference/certs/server.key` |
| `SSL_KEYFILE_PASSWORD` | 暗号化された秘密鍵のパスフレーズ。                                       | 未設定                               |
| `SSL_CA_CERTS`         | クライアント証明書（mTLS）を検証するために使用する CA バンドル。                    | 未設定                               |

証明書と鍵のパスの既定値は `/etc/inference/certs/...`そのため、最も簡単なデプロイでは、証明書と鍵をそれらのパスにマウントし、設定するだけで済みます `ENABLE_HTTPS=true`.

もし `ENABLE_HTTPS` 設定されていても、証明書または鍵が見つからない場合、サーバーは読み込もうとしたパスを一覧にしたエラーを出して起動を拒否します。

## 自己署名証明書を使ったクイックスタート

以下の例では、CPU イメージを `https://localhost:9001` 自己署名証明書を使用しています。本番環境では、証明書生成の手順を自前の CA 発行証明書に置き換えてください。

```bash
# 1. localhost で有効な自己署名の証明書/鍵ペアを生成する
mkdir -p /tmp/inference-certs
openssl req -x509 -newkey rsa:2048 -nodes \\
  -keyout /tmp/inference-certs/server.key \\
  -out /tmp/inference-certs/server.crt \\
  -days 365 \\
  -subj "/CN=localhost" \\
  -addext "subjectAltName=DNS:localhost,IP:127.0.0.1"

# 2. HTTPS を有効にして Inference サーバーを実行する
docker run --rm -p 9001:9001 \
  -e ENABLE_HTTPS=true \\
  -v /tmp/inference-certs:/etc/inference/certs:ro \\
  roboflow/roboflow-inference-server-cpu:latest

# 3. 別のシェルから検証する
curl -sk https://localhost:9001/info
```

`-k` （または `--insecure`）が必要なのは、証明書が自己署名だからです。あなたの CA を信頼するクライアントには不要です。

## カスタム証明書パス

証明書が既定以外の場所にある場合は、パスを明示的に設定します：

```bash
docker run --rm -p 9001:9001 \
  -e ENABLE_HTTPS=true \\
  -e SSL_CERTFILE=/run/secrets/tls/fullchain.pem \\
  -e SSL_KEYFILE=/run/secrets/tls/privkey.pem \\
  -v /etc/letsencrypt/live/inference.example.com:/run/secrets/tls:ro \\
  roboflow/roboflow-inference-server-cpu:latest
```

## 暗号化された秘密鍵

鍵ファイルが暗号化されている場合は、次を通じてパスフレーズを指定します `SSL_KEYFILE_PASSWORD`。値をイメージに埋め込むより、Docker secrets か別のシークレットストアを使用することを推奨します。

## 相互 TLS（クライアント証明書）

設定するのは `SSL_CA_CERTS` クライアント証明書を検証するために使用する CA バンドルに。列挙された CA のいずれかによって署名された証明書を提示するクライアントのみが許可されます。

TLS は、で取り上げている 5 つの制御の 1 つです [セルフホスト型サーバーのセキュリティ保護](/deployment/ja/serufuhosuto/inference-server/configuration/security.md)；サーバーを localhost の外に公開する前に、残りも確認してください。
