From 2478f048486d2c535b0e0806b9d322a043427ed9 Mon Sep 17 00:00:00 2001 From: IrineSistiana <49315432+IrineSistiana@users.noreply.github.com> Date: Fri, 10 Dec 2021 17:54:54 +0800 Subject: [PATCH] update README.md --- README.md | 46 ++++++++++++++++++++-------------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 8627526..f06f67c 100644 --- a/README.md +++ b/README.md @@ -23,25 +23,26 @@ -ws 使用 Websocket 协议。客户端和服务端需一致。 -ws-path string - Websocket 的 url path。客户端和服务端需一致。 + Websocket 的 URL path。客户端和服务端需一致。 # 客户端参数 # e.g. simple-tls -b 127.0.0.1:1080 -d your_server_ip:1080 -n your.server.name - -mux int - 单条 TCP 连接内最大复用的连接数。(默认 0, 禁用 mux) -n string 服务器证书名。用于验证服务端的证书的合法性。也用作 SNI。 + -mux int + 单条 TCP 连接内最大复用的连接数。(默认 0, 禁用 mux) -no-verify 客户端将不会验证服务端的证书的合法性。(证书链验证) -ca string - 加载用于验证服务端的证书的 CA 证书文件。(默认使用系统证书池) + 用于验证服务端的证书的 CA 证书文件。(默认使用系统证书池) -cert-hash string 检查服务器证书的 hash。(文件验证) -hash-cert 命令可以生成证书的 hash # 服务端参数 # e.g. simple-tls -b :1080 -d 127.0.0.1:12345 -s -key /path/to/your/key -cert /path/to/your/cert +# 证书格式必须是 PEM (base64) 。 # -cert 和 -key 可以同时留空,会在内存中生成一个临时证书。证书的域名默认随机,但也可以取自 `-n` 参数。 # e.g. simple-tls -b :1080 -d 127.0.0.1:12345 -s -n my.test.domain @@ -52,7 +53,7 @@ -key string 密钥路径。 -no-tls - 禁用 TLS。 + 禁用 TLS。(用于配合其他 TLS 代理) # 其他通用参数 @@ -64,19 +65,22 @@ # 命令 -gen-cert - 快速生成一个域名为 `-n` 的 ECC 证书到当前目录。 + 生成一个密钥长度为 256 的 ECC 证书到当前目录。 + 证书的 dns name 可以用 `-n` 设定。默认是随机字符串。 + 可以用 `-template` 指定模板证书。除密钥等关键参数外,其他参数都会从模板证书复制。 + 可以用 `-cert` 和 `-key` 指定证书输出位置。(默认当前目录且文件名是证书的 dns name) e.g. simple-tls -gen-cert -n my.domain 会生成证书 my.domain.cert 和密钥 my.domain.key 两个文件到当前目录。 -hash-cert - 计算证书的 hash 值。(用于客户端的 -cert-hash) + 显示证书的 hash 值。(用于客户端的 -cert-hash) e.g. simple-tls -hash-cert ./my.cert -v 显示目前程序版本 ``` -## 服务端无合法证书(使用自签发证书)时如何使用 +## 服务端无合法证书时如何快速上手 -服务端使用临时证书,客户端不做任何验证。建议仅测试时使用该方案。 +服务端使用临时证书,客户端不做任何验证。下层连接有安全措施时可以使用该方案。 ```shell # 服务端的 -cert 和 -key 同时留空,会在内存生成一个临时证书。 @@ -85,27 +89,17 @@ simple-tls -b :1080 -d 127.0.0.1:12345 -s -n my.cert.domain simple-tls -b :1080 -d your.server.address:1080 -n my.cert.domain -no-verify ``` -服务端使用固定证书,客户端使用 hash 验证服务端证书。 - -```shell -# 服务端生成一个证书。然后计算证书的 hash。 -simple-tls -gen-cert -n my.cert.domain -simple-tls -hash-cert ./my.cert.domain.cert -# 使用这个证书启动服务端 -simple-tls -b :1080 -d 127.0.0.1:12345 -s -key ./my.cert.domain.key -cert ./my.cert.domain.cert -# 客户端禁用证书链验证但启用证书文件验证。 -simple-tls -b :1080 -d your.server.address:1080 -n my.cert.domain -no-verify -cert-hash 96edc5... -``` - -服务端使用固定证书,客户端使用 CA 验证服务端证书。 +服务端使用固定证书,客户端使用 hash 验证服务端证书。可提供较高的安全性。 ```shell # 服务端生成一个证书。 simple-tls -gen-cert -n my.cert.domain +# 然后显示证书的 hash。e.g. 8910fe28d2fb40398a... +simple-tls -hash-cert ./my.cert.domain.cert # 使用这个证书启动服务端 simple-tls -b :1080 -d 127.0.0.1:12345 -s -key ./my.cert.domain.key -cert ./my.cert.domain.cert -# 客户端将生成的证书作为 CA 导入 -simple-tls -b :1080 -d your.server.address:1080 -n my.cert.domain -ca ./my.cert.domain.cert +# 客户端禁用证书链验证但启用证书 hash 验证。 +simple-tls -b :1080 -d your.server.address:1080 -n my.cert.domain -no-verify -cert-hash 8910fe28d2fb40398a... ``` ## 作为 SIP003 插件使用 @@ -121,8 +115,8 @@ sslocal -c config.json --plugin simple-tls --plugin-opts "n=your.server.certific ### Android 插件 -simple-tls-android 是 [shadowsocks-android](https://github.com/shadowsocks/shadowsocks-android) 的带 GUI 的插件。 +simple-tls-android 是 [shadowsocks-android](https://github.com/shadowsocks/shadowsocks-android) 的带 GUI 的插件。目前随 simple-tls 一起发布。可从 release 界面下载全平台通用的 apk。 -目前随 simple-tls 一起发布。可从 release 界面下载。 +在 shadowsocks-android 的配置界面选择 simple-tls-android 时会弹出警告 `不是来自可信源`。是因为目前只有 shadowsocks-android 的原作者是 `可信源`,所有第三方插件都会弹出这个警告,无视就好。 simple-tls-android 的源代码在 [这里](https://github.com/IrineSistiana/simple-tls-android) 。