ドキュメント 設定 TLS フィールド

TLS フィールド

tls を使用するプロトコル(VMess/VLESS/Trojan/AnyTLS など)は、SNI、証明書検証、uTLS フィンガープリント、REALITY、ECH を含むこの共通の TLS 設定フィールドを共有します。

設定例

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オプション

サーバー名インジケーション。VMess/VLESS では servername と呼ばれ、空欄の場合はデフォルトで server のアドレスが使用されます。

fingerprintオプション

証明書のフィンガープリント。openssl x509 -noout -fingerprint -sha256 -inform pem -in yourcert.pem で取得できます。ブラウザの「証明書ビューアー」の SHA256 フィンガープリントでも確認できます。リーフ証明書のフィンガープリントを入力するとサーバー証明書が一致するかのみを検証し、中間/ルート証明書のフィンガープリントを入力すると証明書チェーンがそれによって署名されているかを検証します。

alpnオプション

対応するアプリケーション層プロトコルネゴシエーション(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 ポスト量子鍵交換に対応します。

上流実装の互換性の問題により、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 設定を取得する際に使用するドメインを指定します。