За последние 24 часа нас посетили 18053 программиста и 1637 роботов. Сейчас ищут 1727 программистов ...

openssl_get_cert_locations

Тема в разделе "PHP для профи", создана пользователем php_dummy, 10 ноя 2017.

Метки:
  1. php_dummy

    php_dummy Новичок

    С нами с:
    17 авг 2017
    Сообщения:
    13
    Симпатии:
    0
    Функция openssl_get_cert_locations возвращает примерно следующее
    array(8) {
    ["default_cert_file"]=>
    string(36) "c:/openssl-1.0.2g-win32/ssl/cert.pem"
    ["default_cert_file_env"]=>
    string(13) "SSL_CERT_FILE"
    ["default_cert_dir"]=>
    string(33) "c:/openssl-1.0.2g-win32/ssl/certs"
    ["default_cert_dir_env"]=>
    string(12) "SSL_CERT_DIR"
    ["default_private_dir"]=>
    string(35) "c:/openssl-1.0.2g-win32/ssl/private"
    ["default_default_cert_area"]=>
    string(27) "c:/openssl-1.0.2g-win32/ssl"
    ["ini_cafile"]=>
    string(0) ""
    ["ini_capath"]=>
    string(0) ""
    }

    В документации сказано, что при верификации сертификаты ищутся по данным путям. Но этих путей вообще нет. Я попробовал создать первый, поместил туда сертификат, но подключения по ssl не происходит. Функция openssl_error_string ничего не показывает.
    Вопросы: почему так происходит и где можно найти информацию? Можно ли как-то получить код ошибки ssl, чтобы ее однозначно идентифицировать? Можно ли узнать по какому корневому сертификату будет происходить сверка (ведь его возможно вообще нет)? Можно ли понять, что подключения не произошло именно из-за того, что сертификат не был найден и обработать эту ситуацию?
     
    #1 php_dummy, 10 ноя 2017
    Последнее редактирование: 10 ноя 2017