我可以通过设置 ENV 变量或openssl.cnf
配置文件来强制使用 OpenSSL 的任何程序使用 SSLv3 或 TLSv1 吗?我发现我的 OpenSSL 1.0.1c 版本一开始就开始协商 TLSv1.2,这让我无法连接到特定的 API(即 Shopify API)。它失败了SSL protocol error
。
这个问题对于任何与我的 OpenSSL 1.0.1c 链接的软件都很常见,版本 <1.0 运行良好,在我的情况下 OSX 捆绑了 0.9.8r。还发现 Ubuntu 的 1.0.1c 还可以……那是压倒性的。
一个测试:
curl https://ApiKey:Passwd@shop.myshopify.com/admin/customers.json
恰好在 1 分钟后失败。与Unknown SSL protocol error
.
curl -1 https://ApiKey:Passwd@shop.myshopify.com/admin/customers.json
通过立即OK。
因此,默认协商无法正常工作。我需要强制使用 SSLv3 或 TLSv1(不是 TLSv1.1+),但我不会重写每个库或实用程序。
我将使用 Python,目前我可以只使用 PyCURL 并强制使用 SSLv3 或 TLSv1 进行通信。由于 SSL 默认协商问题,我无法使用原始 ShopifyAPI 库。