QNetworkAccessManager выдает ошибки ssl на арке

Я хочу использовать QNetworkAccessManager для доступа к странице через https, но когда я пытаюсь это сделать, я получаю следующий результат:

qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks  
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback  
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback  
qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings  
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup  
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init   
qt.network.ssl: QSslSocket: cannot resolve sk_new_null  
qt.network.ssl: QSslSocket: cannot resolve sk_push  
qt.network.ssl: QSslSocket: cannot resolve sk_free  
qt.network.ssl: QSslSocket: cannot resolve sk_num  
qt.network.ssl: QSslSocket: cannot resolve sk_pop_free  
qt.network.ssl: QSslSocket: cannot resolve sk_value  
qt.network.ssl: QSslSocket: cannot resolve SSL_library_init  
qt.network.ssl: QSslSocket: cannot resolve SSL_load_error_strings  
qt.network.ssl: QSslSocket: cannot resolve SSL_get_ex_new_index  
qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method  
qt.network.ssl: QSslSocket: cannot resolve SSLv3_client_method  
qt.network.ssl: QSslSocket: cannot resolve SSLv23_client_method  
qt.network.ssl: QSslSocket: cannot resolve SSLv2_server_method  
qt.network.ssl: QSslSocket: cannot resolve SSLv3_server_method  
qt.network.ssl: QSslSocket: cannot resolve SSLv23_server_method  
qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get_chain      
qt.network.ssl: QSslSocket: cannot resolve  OPENSSL_add_all_algorithms_noconf  
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf      
qt.network.ssl: QSslSocket: cannot resolve SSLeay  
qt.network.ssl: QSslSocket: cannot resolve SSLeay_version  
qt.network.ssl: QSslSocket: cannot call unresolved function    CRYPTO_num_locks   
qt.network.ssl: QSslSocket: cannot call unresolved function  CRYPTO_set_id_callback  
qt.network.ssl: QSslSocket: cannot call unresolved function CRYPTO_set_locking_callback  
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init   
qt.network.ssl: QSslSocket: cannot call unresolved function SSLeay  
qt.network.ssl: QSslSocket: cannot call unresolved function  SSLeay_version

Я использую Arch x86_64 и QT 5.9.

Набрав в терминале: openssl version -v Я получил
OpenSSL 1.1.0f 25 May 2017, так что он самый новый.

Я также добавил в main.cpp:

qDebug() << "SSL version use for build "
         << QSslSocket::sslLibraryBuildVersionString();
qDebug() <<"SSL version use for run-time "
         << QSslSocket::sslLibraryVersionNumber();

и я получил следующее:

SSL version use for build:  "OpenSSL 1.0.1e-fips 11 Feb 2013"
SSL version use for run-time:  0

У вас есть предложения, что я могу сделать, чтобы решить эту проблему?


person bladzio    schedule 01.06.2017    source источник


Ответы (1)


Проверьте версию OpenSSL, установленную на вашем хосте

QNetworkAccessManager пытается найти функции в библиотеке, которая загружается во время выполнения.

Скорее всего, у вас установлена ​​старая версия OpenSSL.

Также проверьте этот поток на Qt против OpenSSL зависимостей времени компиляции / времени выполнения

person deimus    schedule 01.06.2017