【免费下载链接】goshs
Feature-rich single-binary file server for red teamers and developers. HTTP/S · WebDAV · FTP/SFTP · SMB · LDAP/S · NTLM hash capture · DNS/SMTP callbacks · TLS · Auth · Share links. A powerful python3 -m http.server replacement.
goshs TLS配置一次看懂:本文带你快速掌握 goshs 单二进制文件服务器的 HTTPS 加密方案,涵盖自签名证书、Let's Encrypt 免费证书与 PKCS#12 证书包的三种配置方法,让你告别明文 HTTP 传输。
goshs 是一个功能丰富的单二进制文件服务器,内置 HTTP/S、WebDAV、FTP/SFTP、SMB 等多种协议。启用 TLS 后,所有 Web 文件传输都会走 HTTPS 加密通道。好消息是:goshs 的 TLS 配置极其简单,最少只需要两个参数。
💡 提示:启动 TLS 服务时,goshs 会在终端打印证书的SHA-256 / SHA-1 指纹,方便客户端校验证书真伪(详见 httpserver/error.go)。
🚀 方法一:自签名证书——两条参数秒开 HTTPS
没有证书?goshs 内置了一个临时 CA,会自动生成 RSA 4096 位、有效期 10 年的自签名证书(源码见 ca/ca.go):
goshs -s -ss-s / --ssl:启用 TLS-ss / --self-signed:使用自签名证书
一条命令,零证书文件,适合内网共享和快速验证。注意:自签名证书浏览器会报警告,请先核对终端输出的 SHA-256 指纹,再决定是否继续。
🔑 方法二:自定义证书(crt + key 分离格式)
如果你有现成的证书(如企业内部 CA 签发),用-sc和-sk指定路径即可:
goshs -s -sc /path/to/server.crt -sk /path/to/server.key加载逻辑在 httpserver/server.go 中,要求证书与私钥匹配,且 TLS 最低版本为 1.2。
📦 方法三:PKCS#12 证书包(p12 格式)
Windows 生态常用的.p12 / .pfx单文件证书同样支持,证书和私钥打包在一个文件里,管理更方便:
# 有密码的 p12:启动后会提示你输入密码 goshs -s -p12 /path/to/server.p12 # 空密码的 p12:加 -p12np 跳过交互 goshs -s -p12 /path/to/server.p12 -p12np解析过程基于pkcs12.Decode实现(httpserver/server.go)。集成测试中的示例配置可参考 integration/configs/tls_p12.json:
{ "ssl": true, "p12": "/certs/goshs.p12", "p12_no_pass": true }🌐 方法四:Let's Encrypt 免费证书
拥有公网域名时,goshs 可以直接在线签发 Let's Encrypt 证书,支持 HTTP-01 和 TLS-ALPN-01 两种验证(实现见 ca/letsencrypt.go):
goshs -s -sl -sle your@email.com -sld your.domain.com| 参数 | 说明 |
|---|---|
-sl / --lets-encrypt | 启用 Let's Encrypt |
-sle / --le-email | 注册用邮箱 |
-sld / --le-domains | 域名列表,逗号分隔 |
-slh / --le-http | HTTP 验证端口(默认 80) |
-slt / --le-tls | TLS ALPN 验证端口(默认 443) |
多域名示例:
goshs -s -sl -sle admin@example.com -sld a.example.com,b.example.com -p 443签发的证书会写入当前目录的cert和key文件。
⚙️ 用配置文件管理 TLS 设置
长期使用建议改用配置文件。运行goshs -P可打印一份完整样例,或直接参考 example/goshs.json.example,TLS 相关字段如下:
{ "ssl": true, "self_signed": true, "certificate": "", "private_key": "", "p12": "", "p12_no_pass": false, "letsencrypt": false, "letsencrypt_email": "", "letsencrypt_domain": "" }然后一行启动:
goshs -C /path/to/config.json🛡️ 进阶:客户端证书认证(双向 TLS)
在 TLS 基础上加上-ca参数,可要求访问者出示 CA 签发的客户端证书,没有有效证书的请求将被直接拒绝(相关测试见 integration/integration_test.go 和证书样例 integration/certs/):
goshs -s -ss -ca /path/to/ca.crt📋 goshs TLS 参数速查表
| 场景 | 命令 |
|---|---|
| 自签名 | goshs -s -ss |
| crt + key | goshs -s -sc server.crt -sk server.key |
| PKCS#12 | goshs -s -p12 server.p12 [-p12np] |
| Let's Encrypt | goshs -s -sl -sle 邮箱 -sld 域名 |
| 客户端证书认证 | 以上任意 +-ca ca.crt |
| 配置文件 | goshs -C config.json |
全部 TLS 参数定义位于 options/options.go,运行goshs -h也能随时查看。
🎯 小结
- 内网/临时使用→
-s -ss自签名最快,记得核对指纹 - 有域名→ Let's Encrypt 免费且浏览器零警告
- 企业证书包→
-p12直接加载 p12 文件 - 长期部署→ 配置文件 +
-ca客户端证书认证
掌握这几种方式,你就可以在不同场景下快速为 goshs 加上 HTTPS 保护了。
【免费下载链接】goshs
Feature-rich single-binary file server for red teamers and developers. HTTP/S · WebDAV · FTP/SFTP · SMB · LDAP/S · NTLM hash capture · DNS/SMTP callbacks · TLS · Auth · Share links. A powerful python3 -m http.server replacement.
相关推荐
如何让老旧Mac运行最新macOS?OpenCore Legacy Patcher终极指南
如何让老旧Mac运行最新macOS?OpenCore Legacy Patcher终极指南 还在为你的老Mac无法升级最新系统而烦恼吗?OpenCore Leg
桌面应用操作系统固件Docker-Mailserver SSL/TLS配置终极指南:Let's Encrypt自动证书管理完全教程
Docker Mailserver SSL/TLS配置终极指南:Let's Encrypt自动证书管理完全教程 在当今互联网安全日益重要的环境下,为邮件服务器配
后端通信云原生libwebsockets lws-acme-client 插件实战:在 lwsws 中自动签发与续期 Let's Encrypt TLS 证书
libwebsockets lws acme client 插件实战:在 lwsws 中自动签发与续期 Let's Encrypt TLS 证书 本篇文章以 t
人工智能AI AgentAgent 框架多模态语音音频后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考