CURL, проблема с SSL сертификатом

Активист

Активист
Команда форума
Configuration Options
===> The following configuration options are available for curl-7.44.0:
CA_BUNDLE=on: Install CA bundle for OpenSSL
COOKIES=on: Cookies support
CURL_DEBUG=off: cURL debug memory tracking
DEBUG=off: Build with debugging support
DOCS=on: Build and/or install documentation
EXAMPLES=on: Build and/or install examples
HTTP2=off: HTTP protocol version 2.0 support
IDN=off: International Domain Names support
IPV6=on: IPv6 protocol support
LDAP=off: LDAP protocol support
LDAPS=off: LDAP protocol over SSL support
LIBSSH2=off: SCP/SFTP support via libssh2
PROXY=on: Proxy support
RTMP=off: RTMP protocol support via librtmp
TLS_SRP=on: TLS-SRP (Secure Remote Password) support
====> GSSAPI Security API support: you have to select exactly one of them
GSSAPI_BASE=on: GSSAPI support via base system (Kerberos required)
GSSAPI_HEIMDAL=off: GSSAPI support via security/heimdal
GSSAPI_MIT=off: GSSAPI support via security/krb5
GSSAPI_NONE=off: Disable GSSAPI support
====> DNS resolving options: you can only select none or one of them
CARES=off: Asynchronous DNS resolution via c-ares
THREADED_RESOLVER=on: Threaded DNS resolver
====> SSL protocol support: you can only select none or one of them
GNUTLS=off: SSL/TLS support via GnuTLS
NSS=off: SSL/TLS support via NSS
OPENSSL=on: SSL/TLS support via OpenSSL
POLARSSL=off: SSL/TLS support via PolarSSL
WOLFSSL=off: SSL/TLS support via wolfSSL

Взято отсюда: http://www.freshports.org/ftp/curl
PS: установите аналогичные опции
PS 2: грешу на "IPV6=on: IPv6 protocol support" или "GSSAPI_BASE=on: GSSAPI support via base system (Kerberos required)"
 

westvovik

Новичок
Нус с этими опциями
curl-7.44.0 GSSAPI_BASE is not compatible with OpenSSL from ports. Use other GSSAPI options or OpenSSL from base system.
 

Активист

Активист
Команда форума
Нус с этими опциями
curl-7.44.0 GSSAPI_BASE is not compatible with OpenSSL from ports. Use other GSSAPI options or OpenSSL from base system.
Збс)) Укажите для курла через curl_setopt откуда брать SSL сертификаты и не парьтесь или пересобирайте все остальное
 

AnrDaemon

Продвинутый новичок
Не , не CURLOPT_CAPATH (директория с сертификатами), а именно CURLOPT_CAINFO -bundle сертификаты
Наку… эээ… в общем, зачем?…
ca-certificates ставятся в известное место, сейчас вот фрю проверил - там же, в /etc/ssl/certs лежат.
И на всех остальных системах, до которых могу дотянуться, они там же лежат.
Зачем таскать за собой лишние хвосты?
 

westvovik

Новичок
Так я о том же, хотел сделать без таких подстановок, но вот видимо все дело в переходе на php56

там же столкнулся с проблемой работы fopen, file_get_contents пишет что сертификат не прошел проверку Failed to enable crypto, пришлось насильно отключать
Все из за того, что несколько виртуальных хостов хотя для каждого прописан свой сертификат и по идее через SNI это должно работать, по крайней мере в браузере работает, но вот php ф-ции не хотят, так что везде пришлось костылей повтыкать
 

AnrDaemon

Продвинутый новичок
Простите, вот это ваше последнее сообщение - оно о чём было?…
 

westvovik

Новичок
О том что сертификаты лежат, а CURL их не видит, и так написал дополнение к своим разборкам, правда уже не по сабжу
 

westvovik

Новичок
Да работало все до обновления, ничего не поменялось, кстати CURL тоже обновлялся!
прописал CURLOPT_CAPATH все заработало
 

fixxxer

К.О.
Партнер клуба
Я ж сказал - в гугл. Вот первая ссылка по тому запросу, который я предложил

http://unix.stackexchange.com/questions/159977/freebsd-10-root-certificate-store

Ну а дальше симлинки в дефолтный путь curl, или опции сборки в портах (омг, людям сделали нормальный менеджер пакетов а они продолжают на продакшене собирать из портов).
 

Активист

Активист
Команда форума
Наку… эээ… в общем, зачем?…
ca-certificates ставятся в известное место, сейчас вот фрю проверил - там же, в /etc/ssl/certs лежат.
И на всех остальных системах, до которых могу дотянуться, они там же лежат.
Зачем таскать за собой лишние хвосты?
Прикол в том, что курл из коробки юзает именно бандл сертифакит (собирается cat /opt/openssl/ssl/certs/*.pem > /opt/openssl/ssl/certs/ca-certificates.crt )
 

Активист

Активист
Команда форума
Я ж сказал - в гугл. Вот первая ссылка по тому запросу, который я предложил

http://unix.stackexchange.com/questions/159977/freebsd-10-root-certificate-store

Ну а дальше симлинки в дефолтный путь curl, или опции сборки в портах (омг, людям сделали нормальный менеджер пакетов а они продолжают на продакшене собирать из портов).
Дк, у него там опции в сборке портов не идут.
 

xaam

Новичок
Подскажите а ответ "NSS: client certificate not found (nickname not specified)" тоже из этой серии?


Вот код который выдает это
Код:
function get_fcontent($jsonParams,$amount,$orderNumber,$event_name)
{
    # code...
    function gateway($method, $data) {
        $curl = curl_init(); //
        curl_setopt_array($curl, array(
        CURLOPT_URL => GATEWAY_URL.$method, //
        CURLOPT_RETURNTRANSFER => true, //
        CURLOPT_POST => true, // POST
        CURLOPT_SSLVERSION => 6,
        CURLOPT_POSTFIELDS => http_build_query($data) //
        ));
        $response = curl_exec($curl); //
        var_dump(curl_getinfo($curl));
        echo $response; 
        var_dump(curl_error($curl));
        $response = json_decode($response, true); // JSON

        curl_close($curl); //
        return $response; //
    }

    $data = array(
    'userName' => USERNAME,
    'password' => PASSWORD,
    'orderNumber' => urlencode($orderNumber),
    'amount' => urlencode($amount),
    'returnUrl' => RETURN_URL,
    'language' => 'ru',
    'failUrl' => FAILURL,
    'jsonParams' => $jsonParams,
    'pageView' => 'DESKTOP',
    'sessionTimeoutSecs' => '300',
    'description' => 'Оплата за участие в мероприятии: '.$event_name
    );
    $response = gateway('register.do', $data);
return $response;
}
 
Последнее редактирование:
Сверху