문서 설정 TLS 필드

TLS 필드

tls를 사용하는 프로토콜(VMess/VLESS/Trojan/AnyTLS 등)은 모두 이 TLS 설정 필드 세트를 공유합니다. SNI, 인증서 검증, uTLS 지문, REALITY, ECH 등이 포함됩니다.

설정 예시

config.yaml YAML
proxies:
  - name: "tls-example"
    tls: true
    sni: example.com
    fingerprint: xxx
    alpn:
      - h2
      - http/1.1
    skip-cert-verify: true
    client-fingerprint: chrome
    reality-opts:
      public-key: xxxx
      short-id: xxxx
    ech-opts:
      enable: true
      config: base64_encoded_config

핵심 필드

tls선택

TLS를 활성화합니다. tls를 지원하는 프로토콜에만 적용되며, Trojan 프로토콜은 강제로 활성화됩니다.

sni / servername선택

서버 이름 지정(SNI)입니다. VMess/VLESS에서는 servername이라고 불리며, 비워두면 기본적으로 server의 주소를 사용합니다.

fingerprint선택

인증서 지문으로, openssl x509 -noout -fingerprint -sha256 -inform pem -in yourcert.pem으로 얻을 수 있으며 브라우저의 "인증서 뷰어"에 있는 SHA256 지문에서도 확인할 수 있습니다. 리프 인증서 지문을 입력하면 서버 인증서가 일치하는지만 검증하고, 중간/루트 인증서 지문을 입력하면 인증서 체인이 해당 인증서로 발급되었는지 검증합니다.

alpn선택

지원하는 애플리케이션 레이어 프로토콜 협상 목록으로, 우선순위 순서로 나열합니다. 양쪽이 모두 ALPN을 지원할 때만 적용되며, 공통 프로토콜이 없으면 연결이 실패합니다.

skip-cert-verify선택

인증서 검증을 건너뜁니다. 테스트 환경이나 자체 서명 인증서 상황에서만 필요하며, 프로덕션 환경에서는 활성화를 권장하지 않습니다.

certificate / private-key선택

두 항목을 모두 입력하면 mTLS(양방향 인증서 인증)가 활성화됩니다. 값은 PEM 내용이나 파일 경로일 수 있습니다.

client-fingerprintVMess/VLESS/Trojan/AnyTLS 전용

클라이언트 uTLS 지문으로, 실제 브라우저의 TLS 특징을 모방하는 데 사용됩니다. chrome/firefox/safari/ios/android/edge/360/qq/random(실제 브라우저 분포 확률에 따라 무작위 생성) 중 선택할 수 있습니다.

reality-opts

REALITY 설정으로, 비어있지 않으면 활성화됩니다.

public-key필수

REALITY 서버 개인키에 대응하는 공개키입니다.

short-id필수

서버에 설정된 short id 중 하나입니다.

support-x25519mlkem768선택

X25519-MLKEM768 양자내성 키 교환을 지원합니다.

상류(upstream) 구현의 호환성 문제로 인해 xray-core v26.7.11 이상 버전에서는 REALITY 사용을 권장하지 않습니다. mihomo 네이티브 listener, sing-box, 또는 이전 버전의 xray-core를 서버로 사용하는 것을 권장합니다.

ech-opts

enable선택

ECH(Encrypted Client Hello)를 활성화합니다.

config선택

ECH 설정 내용으로, 비워두면 DNS 해석을 통해 가져오며, 입력하면 해당 base64로 인코딩된 값을 사용합니다. mihomo generate ech-keypair test.com 명령으로 자체 서명 설정 한 쌍을 생성할 수 있으며, 출력의 Config: 뒤의 내용을 여기에 입력하고 Key: 뒤의 내용은 서버 설정에 입력합니다.

query-server-name선택

DNS를 통해 ECH 설정을 조회할 때 사용할 도메인을 지정합니다.