Я только начал использовать Zend 2, и он работает очень хорошо (локально), но я не могу заставить его передавать данные через https на другой сервер.
Я немного нуб, когда дело доходит до ssl certs, и я думаю, что в этом проблема. У меня есть CERT, приватный ключ и сертификат CA – они используются для сертификата ssl на одном из наших доменов vhost на нашем сервере, где расположены: –
SSLCertificateFile /usr/local/psa/var/certificates/cert-#### SSLCACertificateFile /usr/local/psa/var/certificates/cert-####
В каждом примере я читал, что они находятся в '/etc/ssl/certs/ca-bundle.pem'. Мой вопрос заключается в том, как соединить их, чтобы создать этот файл .pem, который хочет zend 2? Я пробовал просто создать файл .pem со всем —– BEGIN CERTIFICATE —– hash / key —– END CERTIFICATE —– in и назвал его ca-bundle.pem но теперь Apache выбрасывает «Невозможно установить ошибку проверки местоположения» у меня, как мне заставить это работать? Вот фрагмент кода, который у меня есть для адаптера:
$adapter = new Zend\Http\Client\Adapter\Socket(); $adapter->setStreamContext(array( 'ssl' => array( 'verify_peer' => true, 'allow_self_signed' => false, 'cafile' => '/usr/local/psa/var/certificates/ca-bundle.pem', 'verify_depth' => 5, 'CN_match' => 'https://www.mydomain.co.uk' ) )); $client->setAdapter($adapter);
Благодаря,
Джо
Сначала это, но я думаю, вы уже сделали это правильно: как получить .pem-файл из .key и .crt файлов?
Ошибка Unable to set verify locations
удается Unable to set verify locations
так как Apache не может найти или прочитать ключ.
Решение:
При попытке установить Composer я получил ту же ошибку. Следующая команда исправила проблему для меня.
sudo update-ca-certificates
Я установил SSL-сертификат на этом сервере после данных инструкций и работал для соединения https. Только при попытке установить Composer я увидел ошибку «не удалось установить проверку местоположения». Надеюсь, это может сэкономить другие часы исследовательского времени, это обошлось мне!