> 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/ko/self-hosted/inference-server/configuration/https.md).

# HTTPS로 Inference 제공

직접 제공한 TLS 인증서와 개인 키를 사용하면 Inference 서버가 HTTPS를 직접 제공할 수 있습니다. 이는 컨테이너 앞에 TLS 종료 리버스 프록시를 둘 수 없는 자체 호스팅 배포에 유용합니다.

HTTPS는 전적으로 환경 변수로 구성됩니다.

## 환경 변수

| 변수                     | 설명                                                 | 기본값                               |
| ---------------------- | -------------------------------------------------- | --------------------------------- |
| `ENABLE_HTTPS`         | 주요 스위치. 다음으로 설정 `True`, `1`, 또는 `예` 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를 활성화한 상태로 추론 서버 실행
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는 다음에서 다루는 다섯 가지 제어 항목 중 하나입니다 [자가 호스팅 서버 보안 설정](/deployment/ko/self-hosted/inference-server/configuration/security.md); 서버를 localhost 밖으로 노출하기 전에 나머지도 검토하세요.
