Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.16.83.150] |
|
Сообщ.
#1
,
|
|
|
Доброго всем.
Суть вопроса: Есть договор с организацией, предусматривающий обмен xml по протоколу https. В openssl сделал запрос на сертификат. OpenSSL сгенерил мне 2 файла: формат .pem -----BEGIN CERTIFICATE REQUEST----- .... -----END CERTIFICATE REQUEST----- и .pem -----BEGIN ENCRYPTED PRIVATE KEY----- .... -----END ENCRYPTED PRIVATE KEY----- длина ключа задана 1024 (их требования). REQUEST отослал в организацию, вернули 2 файла: сгенерированный сертификат .cer и свой корневой .crt Запрос (XML) из oracle идёт на SunOS и оттуда переправляется через curl по средствам .php В curl_setopt($ch,CURLOPT_SSLCERT,'полный_путь_к_файлу_присланного_сертификата.cer'); ---присланный сертификат curl_setopt($ch,CURLOPT_SSLKEY,'полный_путь_к_файлу_закрытого_ключа.pem'); ---private key из curl_setopt($ch, CURLOPT_SSLCERTPASSWD,"пароль"); fulllog выдаёт ошибку * About to connect() to бла-бла-бла.ru port 8444 * Trying ХХХ.ХХ.ХХ.Х... * connected * Connected to pay.mobile-win.ru (ХХХ.ХХ.ХХ.Х) port 8444 * unable to set private key file: 'бла-бла-бла.pem' type PEM * Closing connection #0 и такую же на .cer Из сертификатов .cer и PRIVATE KEY сляпал .p12 и в браузере на своей машине (Win7) соединился с искомым https адресом |
Сообщ.
#2
,
|
|
|
UPD проблемы. Кое-что я нарыл. Сам дурак: не обратил внимание, что в действующей схеме закрытый ключ rsa private key, а я пытаюсь подложить encrypted private key. Ок, переделал. Теперь rsa private key. Кидаю запрос, протокол выполнения:
* About to connect() to ХХХ.ХХ.ХХ.Х port 8444 * Trying ХХХ.ХХ.ХХ.Х... * connected * Connected to ХХХ.ХХ.ХХ.Х (185.15.39.6) port 8444 * successfully set certificate verify locations: * CAfile: /usr/share/curl/curl-ca-bundle.crt CApath: none * Unknown SSL protocol error in connection to ХХХ.ХХ.ХХ.Х:8444 * Closing connection #0 Пробовал разные ключи с сертификатом: 1024, 2048... |
Сообщ.
#3
,
|
|
|
UPD вопроса. Сделал php чисто для проверки коннекта по адресу. В echo возвращает ошибку
Error: 35 - Unknown SSL protocol error in connection to XXX.XX.XX.X:8444 Добавлено Всё, решена проблема.... Кому интересно, то дело в следующем: CURLOPT_SSLVERSION В мануале по php указано, что эту опцию лучше не ставить, НО, блин, оставил как в рекомендации - фиг там, ошибка 35. Установил CURLOPT_SSLVERSION в значении 1 - всё заработало. |