我正在尝试将 Behat 带入 https 安全项目,并且 mink 在发起 curl 请求时失败。
Scenario: Loggin in # features/debt.feature:6
Given I am on "/" # FeatureContext::visit()
[curl] 51: SSL: certificate subject name 'ubuntu' does not match target host name 'wizard' [url] https://wizard/admin/dev.php/ [info] array (
'url' => 'https://wizard/admin/dev.php/',
'content_type' => NULL,
'http_code' => 0,
'header_size' => 0,
'request_size' => 0,
'filetime' => -1,
'ssl_verify_result' => 1,
'redirect_count' => 0,
'total_time' => 0.061943,
'namelookup_time' => 0.000234,
'connect_time' => 0.000344,
'pretransfer_time' => 0,
'size_upload' => 0,
'size_download' => 0,
'speed_download' => 0,
'speed_upload' => 0,
'download_content_length' => -1,
'upload_content_length' => -1,
'starttransfer_time' => 0,
'redirect_time' => 0,
'certinfo' =>
array (
),
) [debug] * About to connect() to wizard port 443 (#0)
* Trying 127.0.0.1... * connected
* Connected to wizard (127.0.0.1) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: none
CApath: /etc/ssl/certs
* SSL connection using DHE-RSA-AES256-SHA
* Server certificate:
* subject: CN=ubuntu
* start date: 2011-05-23 08:26:04 GMT
* expire date: 2021-05-20 08:26:04 GMT
* SSL: certificate subject name 'ubuntu' does not match target host name 'wizard'
* Closing connection #0
这个问题可以通过设置这两个 curl 参数来解决:
CURLOPT_SSL_VERIFYPEER = false
CURLOPT_CERTINFO = false
我知道 Mink 在内部使用 guzzle,它启动 curl 请求。如何使用 curl 选项正确实例化 guzzle 客户端?