1个不稳定版本
0.1.0 | 2023年4月9日 |
---|
#17 in #https服务器
23KB
67 行
安全静态文件服务器
带有嵌入式自签名证书的静态文件HTTPS服务器
安装
使用cargo安装
cargo install ssfs
或从源代码构建
git clone https://github.com/0xor0ne/ssfs
cd ssfs
cargo build --release
# executable in target/release/ssfs
使用方法
通用用法
ssfs [--port <listening_port>] [--ip <binding_ip_address>]
--port
和 --ip
是可选的,它们的默认值是
--port
: 8443--ip
:0.0.0.0
ssfs
将为其当前工作目录及其子目录中存在的文件提供服务。
示例
以下示例假设 ssfs
在当前 $PATH 中。如果不是这种情况,请通过指定可执行文件的完整路径来运行 ssfs
,或者将 ssfs
复制到包含要服务的文件的目录中,并使用 ./ssfs
运行它。
在端口9000上运行 ssfs
ssfs --port 9000
您可以使用 curl
并使用 --insecure
选项连接到服务器
curl --insecure https://<server_ip>:9000/
您可以通过文件的路径来下载特定的文件(例如 path/to/file.txt
)
curl --insecure https://<server_ip>:9000/path/to/file.txt
以下是服务器打印的日志示例
Starting server at: https://0.0.0.0:9000
[2023-04-09T15:59:47Z INFO actix_server::builder] starting 10 workers
[2023-04-09T15:59:47Z INFO actix_server::server] Actix runtime found; starting in Actix runtime
[2023-04-09T15:59:54Z INFO ssfs] 127.0.0.1 curl/7.79.1 GET /path/to/file.txt HTTP/2.0 /path/to/file.txt
您也可以使用标准网络浏览器连接到服务器,并将浏览器设置为信任自签名证书。
证书和密钥
ssfs
随带预生成的服务器证书和密钥。它们位于
assets/cert.pem
assets/key.pem
这两个文件在构建 ssfs
可执行文件时嵌入。
如果您想使用不同的证书和密钥,可以使用以下脚本来生成一对新的证书和密钥
./scripts/generate_cert_and_key.sh
许可
许可方式任选其一
- Apache License,版本2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确说明,否则根据Apache-2.0许可证定义,您有意提交的任何旨在包含在作品中的贡献,将双重授权如上所述,不附加任何额外条款或条件。
依赖项
~25–38MB
~771K SLoC