服务证书¶
注意
本章节的服务证书与 安装中间人证书 章节中所述的中间人抓包证书用途不同,请注意区分,后者安装于 Android 系统信任区,用于使应用信任代理以完成流量拦截。服务证书为 PEM 格式文件,由 FIRERPA 服务端加载、客户端持有,用于加密 FIRERPA 通信链路并校验访问者身份。
本章介绍 FIRERPA 服务证书的生成与部署。FIRERPA 服务端默认未启用身份认证,同一网络内任何知晓设备 IP 与端口的访问者均可连接远程桌面、调用 API 或使用 SSH。如您需要在不可信网络环境中使用或需对通信进行 TLS 加密时,应通过服务证书启用访问控制。
备注
通过 APP 安装服务端时,可在 APP 的配置中启用认证,APP 将自动生成并设置证书,无需执行下文生成流程。采用 Magisk 模块或手动部署,需要按照本章步骤生成并手动进行部署。
生成证书前,须在 PC 端完成 工具准备,克隆 lamda 仓库并在 tools 目录安装 Python 依赖。于 tools 目录执行 cert.py,将参数替换为访问设备时使用的主机名。
python3 cert.py mydevice.local
执行成功后,当前目录将生成 mydevice.local.pem 以及 root.crt、root.key。.pem 文件供服务端启用 TLS 及客户端完成身份校验,root.crt 与 root.key 为根证书密钥对,通常不参与日常连接,但应妥善保管以供后续更换或故障排查。
生成的 PEM 文件首行为元数据注释,其中 PASSWD 字段值为默认远程桌面登录凭据。请勿手动编辑 PEM 文件中的私钥或证书内容,否则可能导致服务端启动失败或客户端校验异常。证书文件格式如下,每个块依次为 key, cert, CA 且必须严格遵循该顺序。
LAMDA SSL CERTIFICATE (CN=mydevice.local,PASSWD=e908d358...)
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEA33YUKkfUkLeWtsCe7A1yzIZsqOTd1a8XWr9+Vh0ombOdtnqK...
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIC1DCCAbygAwIBAgIQBKjY0w1FbPJooD5mJ1CWwDANBgkqhkiG9w0BAQsFADAz...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDAzCCAeugAwIBAgIQR9OCJbQGGQT5Pgp7PmLrDTANBgkqhkiG9w0BAQsFADAz...
-----END CERTIFICATE-----
证书生成后,还需要配置 FIRERPA 服务端在启动时加载该证书,访问控制方可生效。Magisk 部署可将 PEM 重命名为 lamda.pem 并按 安装服务端 Magisk 章节说明置入模块包。配置生效并重启服务后,远程桌面、API 及配套工具方按 HTTPS 与证书要求运行。
手动安装则可以通过在 launch.sh 后面加上命令行参数 --certificate=/path/to/lamda.pem 来传递证书,也可以通过在服务配置中设置 cert 配置项来使用。