如何为 Appium 服务器启用 SSL/TLS 并生成自签名证书【免费下载链接】appiumCross-platform automation framework for all kinds of apps, built on top of the W3C WebDriver protocol项目地址: https://gitcode.com/GitHub_Trending/ap/appium如果你需要让 Appium 服务器只接受加密连接——例如客户端与服务器之间要传输自动化流量而不希望走明文 HTTP——可以在服务器启动时启用 SSL/TLS 支持。该功能从 Appium 2.2 开始提供只需向appium server传入证书与私钥两个参数客户端改用https协议通信即可启用后所有不走 SSL 的客户端连接都会被服务器拒绝。前提条件Appium 版本为 2.2 或更高SSL/TLS 支持是 2.2 引入的。系统上已安装openssl用于生成自签名证书。第一步生成自签名证书和私钥在准备放置证书的目录下执行文档给出的命令openssl req -nodes -new -x509 -keyout key.pem -out cert.pem -subj /CUS/STState/LCity/Ocompany/OUCom/CNwww.testserver.local该命令会在当前目录生成两个文件key.pem私钥文件-keyout参数指定cert.pem自签名 X509 证书-out参数指定。-subj后面的值是文档中的示例主体信息国家、州/省、城市、组织、组织单位、通用名称文档明确说明可以按实际情况替换为你自己的对应字段。证书必须是有效的 X509 PEM 格式且要与私钥配套。第二步带 SSL 参数启动 Appium 服务器启动时同时提供两个参数二者缺一不可appium server --ssl-cert-path/path/to/cert.pem --ssl-key-path/path/to/key.pem--ssl-cert-path证书的绝对路径文件需为.cert/PEM 证书--ssl-key-path私钥的绝对路径。CLI 参考文档同时说明--ssl-cert-path必须与--ssl-key-path一起提供反之亦然单独提供其中一个不会生效。把/path/to/cert.pem与/path/to/key.pem替换为第一步实际生成文件的绝对路径例如~/ssl/cert.pem对应的完整绝对路径。如果不需要调整其他选项可以在此基础上照常用--port默认 4723等参数这些与 SSL 参数互不冲突。可选分支通过配置文件提供证书路径这两个选项也可以写进 Appium 配置文件如.appiumrc.json放在根属性server下键名沿用 kebab-case{ server: { ssl-cert-path: /abs/path/cert.pem, ssl-key-path: /abs/path/key.pem } }配置文件支持 JSON、YAML、JS/CJS 等格式Appium 会沿目录树向上自动发现如.appiumrc.json也可以用appium --config /path/to/config/file指定自定义位置。注意优先级规则命令行参数优先于配置文件同一项在两处都设置时以命令行传入的值为准。配置键的完整定义见 Appium 配置 JSON Schema。启动后如何验证启用 SSL 后验证方式来自文档本身描述的行为改用https协议连接服务器启动后客户端必须使用https协议并使用支持 SSL/TLS或 SPDY的客户端与服务器通信。此时你的自动化客户端的服务器地址应改为https://host:port。明文连接被拒绝所有不安全的非 SSL客户端连接都会被服务器拒绝。如果你用http方式去连这个端口却被拒反而说明 SSL 已生效。支持的协议安全套接字建立后服务器支持的协议为[h2, spdy/3.1, spdy/3, spdy/2, http/1.1, http/1.0]即 HTTP/2 与 SPDY 各版本、以及 HTTP/1.1 和 1.0 均可协商。自签名证书的注意事项文档明确提示服务器本身可以正常配合自签名证书运行但客户端一侧需要正确配置确保它不会拒绝未受信任unauthorized的证书。也就是说使用自签名证书时客户端需要把该证书加入信任或显式跳过证书校验否则握手会失败。文档没有给出具体客户端的跳过校验参数写法需要按你所用的客户端如 WebDriver 客户端、语言 HTTP 库的证书信任机制自行配置。另外两点边界证书与私钥路径必须成对提供且真实存在指向的是「有效的 X509 PEM 证书及其对应私钥」证书与私钥不配套时无法建立安全套接字一旦启用 SSL该服务器就不再接受明文连接原有走http的客户端会全部失效切换前需要确认所有客户端都已改用https。参考文档SSL/TLS/SPDY Support 指南功能引入版本、启动参数、支持的协议、自签名证书命令与客户端注意事项的原始出处appium server CLI 参考--ssl-cert-path、--ssl-key-path的参数说明与「必须成对提供」约束配置文件指南配置文件格式、发现规则与 CLI 优先级。【免费下载链接】appiumCross-platform automation framework for all kinds of apps, built on top of the W3C WebDriver protocol项目地址: https://gitcode.com/GitHub_Trending/ap/appium创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
