cURL - TLS1 和 AES_128_CBC 的未知 SSL 协议错误

cURL - Unknown SSL protocol error with TLS1 and AES_128_CBC

我正在尝试使用 cURL 命令,但一直无法找出正确的语法。我尝试过的所有内容(在下面列出)都会导致 "Unknown SSL protocol error".

当我在 Chrome 42 中发出请求时,我收到了 200 响应,其中包含预期的纯文本正文 "beat"。但是,有一个警告,Chrome 表明请求是使用 TLS 1.0 发出的,连接是使用 AES_128_CBC 加密的,SHA1 用于消息身份验证,RSA 用于密钥交换。

鉴于此信息,我希望能够使用 cURL 向同一个 URL 发出请求并获得响应 "beat"。

我试图传递给 cURL 的证书已从 Keychain 导出为 .pem 和 .cer 格式。

这是我试过的方法。这些命令中的每一个都失败并显示相同的消息 "curl: (35) Unknown SSL protocol error in connection to cxdev.sircon.com:-9824"。

curl --trace - --ciphers ALL --cacert sircon.cer https://cxdev.sircon.com/ComplianceExpress/AutomatedProcessing/rest/ekg
curl -k -v -1 -4 https://cxdev.sircon.com/ComplianceExpress/AutomatedProcessing/rest/ekg
curl -k -v -1 https://cxdev.sircon.com/ComplianceExpress/AutomatedProcessing/rest/ekg
curl -k -v https://cxdev.sircon.com/ComplianceExpress/AutomatedProcessing/rest/ekg
curl -v --cacert ./sircon.pem https://cxdev.sircon.com/ComplianceExpress/AutomatedProcessing/rest/ekg
curl -v --ciphers ALL --cacert sircon.cer https://cxdev.sircon.com/ComplianceExpress/AutomatedProcessing/rest/ekg
curl -v --tlsv1 --cacert ./sircon.pem https://cxdev.sircon.com/ComplianceExpress/AutomatedProcessing/rest/ekg
curl -v --tlsv1 --cacert sircon.cer https://cxdev.sircon.com/ComplianceExpress/AutomatedProcessing/rest/ekg
curl -v --tlsv1 --ciphers AES128 --cacert sircon.cer https://cxdev.sircon.com/ComplianceExpress/AutomatedProcessing/rest/ekg
curl -v --tlsv1 --ciphers AES128-SHA --cacert sircon.cer https://cxdev.sircon.com/ComplianceExpress/AutomatedProcessing/rest/ekg
curl -v --tlsv1 --ciphers ALL --cacert sircon.cer https://cxdev.sircon.com/ComplianceExpress/AutomatedProcessing/rest/ekg
curl -v -1 https://cxdev.sircon.com/ComplianceExpress/AutomatedProcessing/rest/ekg
curl -v https://cxdev.sircon.com/ComplianceExpress/AutomatedProcessing/rest/ekg

新的内部 CA 和证书解决了这个问题。使用 TLS 1.0 并使用 AES_256_CBC 和 SHA1 加密连接以进行消息身份验证和 ECDHE_RSA,我能够 Chrome 在访问 URL 时显示一个漂亮的绿色锁图标我在问题中发布的每一个 curl 命令现在都能够成功检索资源。