이 문서는 oHTTP 포함 경로로 server-1/2/3/4 전체를 통과하는
간단한 테스트를 수행하는 방법을 설명합니다.
테스트 클라이언트는 /client/cli/fake-attestation을 사용합니다.
- 테스트 대상 서버가 실행 중이어야 합니다.
- fake_attestation은 fake attestation 경로이므로
enable_fake_attestation_for_server2=true환경을 전제로 합니다.
- fake_attestation은 fake attestation 경로이므로
- 테스트를 실행하는 머신에서 필요한 포트에 접근 가능해야 합니다.
- oHTTP 포함 시:
server-4(3100/tcp),server-3(8080/tcp)(시나리오 A에서만) - oHTTP 미사용 시:
server-1(3600/tcp)
- oHTTP 포함 시:
- oHTTP 시나리오에서는 OHTTP_SEEDS_JSON 값이 필요합니다.
- 포맷은
HOW-TO-DEPLOY.md의 6-2a 섹션을 참고하세요.
- 포맷은
시나리오 A는 아래 경로를 통과합니다.
fake_attestation client
-> server-4 (relay)
-> server-1 (gateway)
-> server-1 (router)
-> server-2 (compute enclave)
또한 server-3는 /api/config 응답으로
oHTTP 키/릴레이 설정이 정상인지 확인합니다.
OHTTP_SEEDS_JSON은 JSON 배열 문자열이어야 합니다.
다음 방식 중 하나를 사용하세요.
export OHTTP_SEEDS_JSON='[{"key_id":"01","seed_hex":"...","active_from":"2026-01-30T00:00:00Z","active_until":"2026-07-30T00:00:00Z"}]'export OHTTP_SEEDS_JSON="$(jq -c . /path/to/ohttp_seeds.json)"ohttp_seeds_json=[{"key_id":"01","seed_hex":"...","active_from":"2026-01-30T00:00:00Z","active_until":"2026-07-30T00:00:00Z"}]
주의:
- 파일 경로(
/path/to/...)를 그대로 넣으면 JSON이 아니므로 실패합니다.- JSON에
//주석이 있으면 파싱 실패합니다.- 줄바꿈 없는 한 줄 JSON이어야 합니다.
예시:
SERVER3_URL="http://<server3-public-ip>:8080"
예시:
RELAY_URL="http://<server4-public-ip>:3100"
배포에 사용한 JSON을 그대로 사용합니다.
예시(형식):
[
{
"key_id": "01",
"seed_hex": "0123456789abcdef...64hex...",
"active_from": "2026-01-30T00:00:00Z",
"active_until": "2026-07-30T00:00:00Z"
}
]curl -s "${SERVER3_URL}/healthz"정상 응답 예:
{"status":"ok"}curl -s "${SERVER3_URL}/api/config" | jq .확인 포인트:
features.ohttp == truerelay_urls에RELAY_URL이 포함되어 있는지gateway_url/router_url값 존재 여부ohttp_key_configs_bundle/ohttp_key_rotation_periods존재 여부
export RELAY_URL="http://<server4-public-ip>:3100"
export OHTTP_SEEDS_JSON='<seeds-json-here>'
export MODEL_NAME="llama3.2:1b"
export PROMPT_TEXT="Hello from OpenPCC."
# 필요 시:
# export FAKE_ATTESTATION_SECRET="123456"
-ohttp옵션이 필수입니다.
-ohttp=enable로 지정해야 oHTTP 경로가 사용됩니다.
cd client/cli/fake-attestation
go run . -ohttp=enable성공 시 응답 본문이 출력됩니다.
server-3 /healthz가 200 응답server-3 /api/config에서 oHTTP 관련 값이 정상 출력fake_attestation실행 결과가 2xx 응답이며 본문이 출력됨
RELAY_URL접근 불가:- server-4 보안그룹에서
3100/tcp인바운드 허용 여부
- server-4 보안그룹에서
server-3 /api/config가 5xx:- server-3 config JSON 형식 확인
ohttp_seeds형식/필수 필드(key_id,seed_hex,active_from,active_until)
fake_attestation가 4xx/5xx:OHTTP_SEEDS_JSON이 server-1/server-3와 동일한지 확인active_from/active_until기간이 현재 시간과 겹치는지 확인- server-2 (compute) 인스턴스가 정상 기동 중인지 확인
이 시나리오는 server-3 없이 oHTTP 경로를 확인합니다.
fake_attestation은 내부 fake auth client를 사용하므로 가능하지만, 이는 테스트 전용입니다.
server-1/server-2/server-4가 실행 중인지 확인RELAY_URL,OHTTP_SEEDS_JSON준비OHTTP_SEEDS_JSON이 server-1에서 사용 중인 seed와 동일해야 합니다.
export RELAY_URL="http://<server4-public-ip>:3100"
export OHTTP_SEEDS_JSON='<seeds-json-here>'
cd client/cli/fake-attestation
go run . -ohttp=enablefake_attestation실행 결과가 2xx 응답이며 본문이 출력됨
이 시나리오는 router 직접 호출 경로입니다.
server-1/server-2가 실행 중인지 확인ROUTER_URL준비 (port 3600)
export ROUTER_URL="http://<server1-public-ip>:3600"
cd client/cli/fake-attestation
go run . -ohttp=disablefake_attestation실행 결과가 2xx 응답이며 본문이 출력됨