pproxy 2.7.8启动http+ssl监听提示需指定--ssl参数如何解决
问题根因
pproxy 2.7.8版本对http+ssl/https类带SSL层的监听模式加了强制参数校验,只要监听协议走SSL加密,就必须通过--ssl传入证书文件,低版本无该校验所以直接运行不会报错。官方文档未明确说明的是,--ssl参数接收的是同时包含私钥、证书内容的PEM格式文件,不支持分开传入私钥和证书路径。
SSLFILE参数要求
- 格式:标准PEM编码文本文件,无强制后缀要求,常用
.pem作为后缀 - 内容顺序:文件开头放无密码保护的私钥内容,后续拼接对应服务器证书内容,有中间证书链的按顺序追加在服务器证书后即可
- 限制:私钥不能设置加密口令,否则pproxy启动时读取文件会直接失败
本地调试用证书生成
本地搭配Scrapy接入Tor的场景不需要申请公网信任CA签发的证书,直接用openssl生成自签名证书即可,执行以下命令,过程中所有提示项直接回车留空即可:
openssl req -new -x509 -days 3650 -nodes -out proxy.pem -keyout proxy.pem
命令执行完成后,当前目录下生成的proxy.pem即可直接作为--ssl参数的传入值。
正确启动命令
在原命令基础上补充--ssl参数指向证书文件即可:
pproxy -l http+ssl://:8181 --ssl ./proxy.pem -r socks5://127.0.0.1:9050 -vv
Scrapy侧适配
由于本地生成的是自签名证书,默认会触发SSL证书校验失败,需要在Scrapy项目的settings.py中添加以下配置关闭代理侧证书校验:
SSL_CERT_CHECK_ENABLED = False
如果是生产环境使用,只需将域名对应的私钥、全链证书内容按「私钥在前、证书在后」的顺序拼接为单个PEM文件,替换掉自签名证书文件即可,其余配置完全一致。
内容的提问来源于stack exchange,提问作者AvyWam
相关产品推荐
相关产品推荐

