news 2026/10/22 1:18:16

goshs TLS实战:自签名证书、Let‘s Encrypt与PKCS12快速配置指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
goshs TLS实战:自签名证书、Let‘s Encrypt与PKCS12快速配置指南

【免费下载链接】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.

项目地址:https://gitcode.com/gh_mirrors/go/goshs
点击查看免费下载

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-httpHTTP 验证端口(默认 80)
-slt / --le-tlsTLS 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 + keygoshs -s -sc server.crt -sk server.key
PKCS#12goshs -s -p12 server.p12 [-p12np]
Let's Encryptgoshs -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.

项目地址:https://gitcode.com/gh_mirrors/go/goshs
点击查看免费下载

相关推荐

上一篇:探索Cyclopts:现代CLI框架的全新选择
下一篇:CANN/metadef格式转换函数

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/22 1:16:06

ubuntu实践(含有xshell使用)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/22 1:15:35

星球系列靶机Venus

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/22 1:14:25

IDS国际数据空间(工业数据空间)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/22 1:12:17

组态王6.55安装配置全流程:避开常见坑,跑通工业监控系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华