github.com/sagernet/sing-box@v1.2.7/docs/configuration/shared/tls.zh.md (about)

     1  ### 入站
     2  
     3  ```json
     4  {
     5    "enabled": true,
     6    "server_name": "",
     7    "alpn": [],
     8    "min_version": "",
     9    "max_version": "",
    10    "cipher_suites": [],
    11    "certificate": "",
    12    "certificate_path": "",
    13    "key": "",
    14    "key_path": "",
    15    "acme": {
    16      "domain": [],
    17      "data_directory": "",
    18      "default_server_name": "",
    19      "email": "",
    20      "provider": "",
    21      "disable_http_challenge": false,
    22      "disable_tls_alpn_challenge": false,
    23      "alternative_http_port": 0,
    24      "alternative_tls_port": 0,
    25      "external_account": {
    26        "key_id": "",
    27        "mac_key": ""
    28      }
    29    },
    30    "reality": {
    31      "enabled": false,
    32      "handshake": {
    33        "server": "google.com",
    34        "server_port": 443,
    35  
    36        ... // 拨号字段
    37      },
    38      "private_key": "UuMBgl7MXTPx9inmQp2UC7Jcnwc6XYbwDNebonM-FCc",
    39      "short_id": [
    40        "0123456789abcdef"
    41      ],
    42      "max_time_difference": "1m"
    43    }
    44  }
    45  ```
    46  
    47  ### 出站
    48  
    49  ```json
    50  {
    51    "enabled": true,
    52    "disable_sni": false,
    53    "server_name": "",
    54    "insecure": false,
    55    "alpn": [],
    56    "min_version": "",
    57    "max_version": "",
    58    "cipher_suites": [],
    59    "certificate": "",
    60    "certificate_path": "",
    61    "ech": {
    62      "enabled": false,
    63      "pq_signature_schemes_enabled": false,
    64      "dynamic_record_sizing_disabled": false,
    65      "config": ""
    66    },
    67    "utls": {
    68      "enabled": false,
    69      "fingerprint": ""
    70    },
    71    "reality": {
    72      "enabled": false,
    73      "public_key": "jNXHt1yRo0vDuchQlIP6Z0ZvjT3KtzVI-T4E7RoLJS0",
    74      "short_id": "0123456789abcdef"
    75    }
    76  }
    77  ```
    78  
    79  TLS 版本值:
    80  
    81  * `1.0`
    82  * `1.1`
    83  * `1.2`
    84  * `1.3`
    85  
    86  密码套件值:
    87  
    88  * `TLS_RSA_WITH_AES_128_CBC_SHA`
    89  * `TLS_RSA_WITH_AES_256_CBC_SHA`
    90  * `TLS_RSA_WITH_AES_128_GCM_SHA256`
    91  * `TLS_RSA_WITH_AES_256_GCM_SHA384`
    92  * `TLS_AES_128_GCM_SHA256`
    93  * `TLS_AES_256_GCM_SHA384`
    94  * `TLS_CHACHA20_POLY1305_SHA256`
    95  * `TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA`
    96  * `TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA`
    97  * `TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA`
    98  * `TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA`
    99  * `TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256`
   100  * `TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384`
   101  * `TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256`
   102  * `TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384`
   103  * `TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256`
   104  * `TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256`
   105  
   106  !!! note ""
   107  
   108      当内容只有一项时,可以忽略 JSON 数组 [] 标签
   109  
   110  ### 字段
   111  
   112  #### enabled
   113  
   114  启用 TLS
   115  
   116  #### disable_sni
   117  
   118  ==仅客户端==
   119  
   120  不要在 ClientHello 中发送服务器名称.
   121  
   122  #### server_name
   123  
   124  用于验证返回证书上的主机名,除非设置不安全。
   125  
   126  它还包含在 ClientHello 中以支持虚拟主机,除非它是 IP 地址。
   127  
   128  #### insecure
   129  
   130  ==仅客户端==
   131  
   132  接受任何服务器证书。
   133  
   134  #### alpn
   135  
   136  支持的应用层协议协商列表,按优先顺序排列。
   137  
   138  如果两个对等点都支持 ALPN,则选择的协议将是此列表中的一个,如果没有相互支持的协议则连接将失败。
   139  
   140  参阅 [Application-Layer Protocol Negotiation](https://en.wikipedia.org/wiki/Application-Layer_Protocol_Negotiation)。
   141  
   142  #### min_version
   143  
   144  可接受的最低 TLS 版本。
   145  
   146  默认情况下,当前使用 TLS 1.2 作为客户端的最低要求。作为服务器时使用 TLS 1.0。
   147  
   148  #### max_version
   149  
   150  可接受的最大 TLS 版本。
   151  
   152  默认情况下,当前最高版本为 TLS 1.3。
   153  
   154  #### cipher_suites
   155  
   156  将在 ECDHE 握手中使用的椭圆曲线,按优先顺序排列。
   157  
   158  如果为空,将使用默认值。
   159  
   160  客户端将使用第一个首选项作为其在 TLS 1.3 中的密钥共享类型。
   161  这在未来可能会改变。
   162  
   163  #### certificate
   164  
   165  服务器 PEM 证书。
   166  
   167  #### certificate_path
   168  
   169  服务器 PEM 证书路径。
   170  
   171  #### key
   172  
   173  ==仅服务器==
   174  
   175  服务器 PEM 私钥。
   176  
   177  #### key_path
   178  
   179  ==仅服务器==
   180  
   181  服务器 PEM 私钥路径。
   182  
   183  #### ech
   184  
   185  ==仅客户端==
   186  
   187  !!! warning ""
   188  
   189      默认安装不包含 ECH, 参阅 [安装](/zh/#_2)。
   190  
   191  ECH (Encrypted Client Hello) 是一个 TLS 扩展,它允许客户端加密其 ClientHello 的第一部分
   192  信息。
   193  
   194  如果您不知道如何填写其他配置,只需设置 `enabled` 即可。
   195  
   196  #### utls
   197  
   198  ==仅客户端==
   199  
   200  !!! warning ""
   201  
   202      默认安装不包含 uTLS, 参阅 [安装](/zh/#_2)。
   203  
   204  !!! note ""
   205  
   206      uTLS 维护不善且其效果可能未经证实,使用风险自负。
   207  
   208  uTLS 是 "crypto/tls" 的一个分支,它提供了 ClientHello 指纹识别阻力。
   209  
   210  可用的指纹值:
   211  
   212  * chrome
   213  * firefox
   214  * edge
   215  * safari
   216  * 360
   217  * qq
   218  * ios
   219  * android
   220  * random
   221  * randomized
   222  
   223  默认使用 chrome 指纹。
   224  
   225  ### ACME 字段
   226  
   227  !!! warning ""
   228  
   229      默认安装不包含 ACME,参阅 [安装](/zh/#_2)。
   230  
   231  #### domain
   232  
   233  一组域名。
   234  
   235  默认禁用 ACME。
   236  
   237  #### data_directory
   238  
   239  ACME 数据目录。
   240  
   241  默认使用 `$XDG_DATA_HOME/certmagic|$HOME/.local/share/certmagic`。
   242  
   243  #### default_server_name
   244  
   245  如果 ClientHello 的 ServerName 字段为空,则选择证书时要使用的服务器名称。
   246  
   247  #### email
   248  
   249  创建或选择现有 ACME 服务器帐户时使用的电子邮件地址。
   250  
   251  #### provider
   252  
   253  要使用的 ACME CA 供应商。
   254  
   255  | 值                  | 供应商           |
   256  |--------------------|---------------|
   257  | `letsencrypt (默认)` | Let's Encrypt |
   258  | `zerossl`          | ZeroSSL       |
   259  | `https://...`      | 自定义           |
   260  
   261  #### disable_http_challenge
   262  
   263  禁用所有 HTTP 质询。
   264  
   265  #### disable_tls_alpn_challenge
   266  
   267  禁用所有 TLS-ALPN 质询。
   268  
   269  #### alternative_http_port
   270  
   271  用于 ACME HTTP 质询的备用端口;如果非空,将使用此端口而不是 80 来启动 HTTP 质询的侦听器。
   272  
   273  #### alternative_tls_port
   274  
   275  用于 ACME TLS-ALPN 质询的备用端口; 系统必须将 443 转发到此端口以使质询成功。
   276  
   277  #### external_account
   278  
   279  EAB(外部帐户绑定)包含将 ACME 帐户绑定或映射到其他已知帐户所需的信息由 CA。
   280  
   281  外部帐户绑定“用于将 ACME 帐户与非 ACME 系统中的现有帐户相关联,例如 CA 客户数据库。
   282  
   283  为了启用 ACME 帐户绑定,运行 ACME 服务器的 CA 需要向 ACME 客户端提供 MAC 密钥和密钥标识符,使用 ACME 之外的一些机制。
   284  §7.3.4
   285  
   286  #### external_account.key_id
   287  
   288  密钥标识符。
   289  
   290  #### external_account.mac_key
   291  
   292  MAC 密钥。
   293  
   294  ### Reality 字段
   295  
   296  !!! warning ""
   297  
   298      默认安装不包含 reality 服务器,参阅 [安装](/zh/#_2)。
   299  
   300  !!! warning ""
   301  
   302      默认安装不包含被 reality 客户端需要的 uTLS, 参阅 [安装](/zh/#_2)。
   303  
   304  #### handshake
   305  
   306  ==仅服务器==
   307  
   308  ==必填==
   309  
   310  握手服务器地址和 [拨号参数](/zh/configuration/shared/dial/)。
   311  
   312  #### private_key
   313  
   314  ==仅服务器==
   315  
   316  ==必填==
   317  
   318  私钥,由 `sing-box generate reality-keypair` 生成。
   319  
   320  #### public_key
   321  
   322  ==仅客户端==
   323  
   324  ==必填==
   325  
   326  公钥,由 `sing-box generate reality-keypair` 生成。
   327  
   328  #### short_id
   329  
   330  ==必填==
   331  
   332  一个零到八位的十六进制字符串。
   333  
   334  #### max_time_difference
   335  
   336  服务器与和客户端之间允许的最大时间差。
   337  
   338  默认禁用检查。
   339  
   340  ### 重载
   341  
   342  对于服务器配置,如果修改,证书和密钥将自动重新加载。