跳转到内容

SSL/TLS 设置

本指南介绍了如何在 node-hiprint-transit 服务器中配置和使用 SSL/TLS 加密以实现安全通信。 node-hiprint-transit 服务器支持可选的 SSL/TLS 加密,以保护使用 vue-plugin-hiprint 的 Web 客户端和 electron-hiprint 客户端之间的连接。有关基本配置选项,请参阅配置文档。

1. 理解 node-hiprint-transit 中的 SSL/TLS

SSL/TLS 加密通过加密网络上传输的数据,在客户端和服务器之间提供安全通信。启用后,node-hiprint-transit 服务器将对所有连接使用 HTTPS 而不是 HTTP,从而在传输过程中保护敏感的打印数据。

来源: README.md 第 70-74 行,README.md 第 84-87 行

2. 初始化时启用 SSL

首次初始化 node-hiprint-transit 服务器时,系统会提示您配置各种设置,包括是否启用 SSL:

node run ./dist/init

# ? Set language 设置语言 (Use arrow keys)
# > English
#   简体中文
# ? 设置服务端口号 10000~65535: 17521
# ? 设置服务 TOKEN (使用通配符(*)匹配任意字符):hiprint*
# ? 使用 SSL:(y/N)
# 配置文件写入成功

当提示"使用 SSL:(y/N)"时,输入"y"启用 SSL,或输入"N"禁用 SSL。此设置将保存在您的配置文件中。

来源: README.md 第 58-73 行

3. SSL 证书要求

要使用 SSL,您需要:

  1. SSL 证书文件 (ssl.pem)
  2. 私钥文件 (ssl.key)

该仓库包含示例 SSL 文件,但对于生产环境,您应该用自己的证书替换这些文件。

来源: README.md 第 324-325 行, src/ssl.pem, src/ssl.key

4. 替换默认证书

默认证书文件位于:

  • src/ssl.pem - SSL 证书
  • src/ssl.key - 私钥

对于生产环境,您应该用自己的证书替换这些文件:

  1. 为您的域获取有效的 SSL 证书
    • 您可以使用像 Let's Encrypt 这样的服务获取免费的 SSL 证书
    • 对于测试,您可以生成自签名证书
  2. 将您的证书文件重命名为 ssl.pem,将您的私钥重命名为 ssl.key
  3. 替换 src 目录中的默认文件
  4. 如有必要,重新构建应用程序:
    npm run build
  5. 服务器启动时将自动使用您的新证书

来源: README.md 第 324-325 行, src/ssl.pem, src/ssl.key

5. 系统架构中的 SSL 集成

SSL/TLS 加密在 node-hiprint-transit 的整体架构中如下所示:

(注意:原文此处可能引用了架构图或更详细的描述,翻译时请参考原文的具体内容)

来源: README.md 第 12-15 行

6. 将客户端连接到启用 SSL 的服务器

Web 客户端 (vue-plugin-hiprint)

连接到启用 SSL 的服务器时,请确保在连接 URL 中使用 https:// 协议。

Electron 客户端 (electron-hiprint)

配置 electron-hiprint 连接到服务器时:

  1. 右键单击托盘图标以访问设置
  2. 输入带有 https:// 协议的服务器地址
  3. 输入端口(默认为 17521)
  4. 输入您的身份验证令牌
  5. 单击"测试"以验证连接
  6. 单击"应用"并重新启动客户端

来源: README.md 第 106-116 行, README.md 第 120-138 行

7. 验证 SSL 配置

当您启动启用了 SSL 的服务器时,您应该会看到确认其正在 HTTPS URL 上运行的输出:

node ./dist/index

服务器正运行在
https://yourdomain.com:17521

请确保安全组或防火墙已放行端口。
令牌:yourtoken*

请注意 URL 中的 https://,这确认 SSL 已激活。

来源: README.md 第 94-103 行

8. SSL 通信流程

启用 SSL 后,客户端和服务器之间的所有通信都将被加密。

(注意:原文此处可能引用了通信流程图或更详细的描述,翻译时请参考原文的具体内容)

来源: README.md 第 142-207 行

9. SSL 连接故障排除

如果您遇到 SSL 连接问题:

  1. 验证您的证书文件格式是否正确且有效
  2. 确保证书适用于正确的域
  3. 检查证书 (ssl.pem) 和私钥 (ssl.key) 文件是否位于正确的位置
  4. 确保客户端在连接 URL 中使用 https://
  5. 检查证书的到期日期
  6. 出于测试目的,您可能需要在浏览器中接受自签名证书

来源: README.md 第 324-325 行

10. 安全最佳实践

在 node-hiprint-transit 中使用 SSL 时:

  1. 始终使用强大且唯一的令牌进行身份验证
  2. 用您自己的有效证书替换默认证书
  3. 确保私钥安全,切勿共享
  4. 在证书到期前定期更新证书
  5. 考虑使用 Let's Encrypt 获取免费且可自动续订的证书

来源: README.md 第 35-39 行