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