[GH-ISSUE #2911] [Linux] conflict between bundled and system OpenSSL libraries (version 'OPENSSL_3.0.1' not found) which causes persistent error 1100 #1326

Closed
opened 2026-10-13 20:40:18 +00:00 by bsakaguchi · 3 comments
Owner

Originally created by @Todech on GitHub (Jul 31, 2026).
Original GitHub issue: https://github.com/amnezia-vpn/amnezia-client/issues/2911

Описание проблемы (RU)

При запуске AmneziaVPN на Linux с установленным OpenSSL 3.5.7 приложение не может загрузить TLS-бэкенд и постоянно выдаёт ошибку 1100 (в интерфейсе пользователя). В логах видно, что используется заглушечный бэкенд "cert-only", а все сетевые запросы завершаются с UnknownNetworkError. Корень проблемы — конфликт между встроенной библиотекой libcrypto.so.3 (старого образца) и системной, которая требует символ OPENSSL_3.0.1, отсутствующий во встроенной версии.

Шаги для воспроизведения

  1. Установите AmneziaVPN из официального пакета (в /opt/AmneziaVPN).
  2. Убедитесь, что в системе установлен OpenSSL 3.5.7 (вывод openssl version).
  3. Запустите AmneziaVPN.
  4. В интерфейсе появляется ошибка 1100, соединение не устанавливается.

Ожидаемое поведение

Приложение должно успешно загрузить OpenSSL-бэкенд Qt и установить защищённое соединение без ошибок.

Фактическое поведение

  • Qt находит плагин libqopensslbackend.so, но не может загрузить системные библиотеки из-за конфликта версий.
  • В логах появляется: qt.tlsbackend.ossl: Failed to load libssl/libcrypto.
  • Используется бэкенд cert-only, который не поддерживает TLS.
  • Все сетевые запросы проваливаются, пользователь видит error 1100 и не может изменить конфигурацию API.

Логи (ключевые фрагменты)

qt.core.plugin.loader: Found metadata in lib /opt/AmneziaVPN/plugins/tls/libqopensslbackend.so
qt.core.library: "/lib64/libssl.so.3.5.7" cannot load: /opt/AmneziaVPN/bin/../lib/libcrypto.so.3: version `OPENSSL_3.0.1' not found (required by /lib64/libssl.so.3.5.7)
qt.tlsbackend.ossl: Failed to load libssl/libcrypto.
qt.network.ssl: The backend "cert-only" does not support QSslKey
qt.network.ssl: Active TLS backend does not support key creation
qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
QNetworkReply::UnknownNetworkError

Решение (проверено, работает)

Проблема вызвана тем, что внутри /opt/AmneziaVPN/ присутствуют встроенные копии OpenSSL (особенно libcrypto.so.3), которые конфликтуют с системными библиотеками. Достаточно удалить или переместить все файлы libcrypto.so* из папок установки, чтобы приложение начало использовать системные библиотеки.

Пошаговая инструкция:

  1. Откройте терминал и перейдите в каталог установки:

    cd /opt/AmneziaVPN
    
    
  2. Создайте резервную папку (на всякий случай)

  3. Найдите и переместите \ удалите libcrypto.so.3 из /bin и /lib (libcrypto.so.3 обычно хватает, можно удалить и libssl.so* и другие библиотеки libcrypto.so.*, однако без первого - второе не будет по идее загружаться)

  4. Перезапустите AmneziaVPN – теперь он будет использовать системный OpenSSL 3.5.7, и ошибка 1100 исчезнет.

После этих действий TLS-соединения устанавливаются успешно.

Дополнительная информация

Системная версия OpenSSL: 3.5.7 (OpenSSL 3.5.7 9 Jun 2026 (Library: OpenSSL 3.5.7 9 Jun 2026).

Дистрибутив: Fedora 44 KDE Plasma 

Способ установки AmneziaVPN: официальный установщик в /opt/AmneziaVPN.

Версия AmneziaVPN: 5.0.0.5

Problem description (EN)

When launching AmneziaVPN on Linux with OpenSSL 3.5.7 installed, the application fails to load the TLS backend and persistently shows error 1100 in the user interface. Logs show that the dummy backend "cert-only" is being used, and all network requests fail with UnknownNetworkError. The root cause is a conflict between the bundled libcrypto.so.3 library (older version) and the system, which requires the symbol OPENSSL_3.0.1 that is missing from the bundled version.

Steps to reproduce

  1. Install AmneziaVPN from the official package (installed to /opt/AmneziaVPN).
  2. Ensure OpenSSL 3.5.7 is installed on the system (openssl version).
  3. Launch AmneziaVPN.
  4. Error 1100 appears in the interface, connection fails, and API configuration cannot be changed.

Expected behavior

The application should successfully load the Qt OpenSSL backend and establish secure connections without errors.

Actual behavior

  • Qt finds the plugin libqopensslbackend.so but fails to load system libraries due to version conflict.
  • Logs show: qt.tlsbackend.ossl: Failed to load libssl/libcrypto.
  • The backend falls back to "cert-only", which does not support TLS.
  • All network requests fail, and the user sees error 1100 in the interface and cannot modify API configuration.

Logs (key fragments)

qt.core.plugin.loader: Found metadata in lib /opt/AmneziaVPN/plugins/tls/libqopensslbackend.so
qt.core.library: "/lib64/libssl.so.3.5.7" cannot load: /opt/AmneziaVPN/bin/../lib/libcrypto.so.3: version `OPENSSL_3.0.1' not found (required by /lib64/libssl.so.3.5.7)
qt.tlsbackend.ossl: Failed to load libssl/libcrypto.
qt.network.ssl: The backend "cert-only" does not support QSslKey
qt.network.ssl: Active TLS backend does not support key creation
qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
QNetworkReply::UnknownNetworkError

Solution (verified, working)

The issue is caused by bundled OpenSSL copies inside /opt/AmneziaVPN/ (especially libcrypto.so.3) that conflict with system libraries. Removing or moving all libcrypto.so* files from the installation directories forces the application to use the system libraries.

Step-by-step instructions:

  1. Open a terminal and navigate to the installation directory:

    cd /opt/AmneziaVPN
    
    
  2. Create a backup folder (just in case)

  3. Find and move, or delete all OpenSSL files from /bin and /lib directories in /opt/AmneziaVPN (Usually removing libcrypto.so.3 is sufficient; if the bundled libcrypto is not found, the bundled libssl or other bundled libcrypto.so.* will not be loaded either)

  4. Restart AmneziaVPN – it will now use the system OpenSSL 3.5.7, and error 1100 disappears.

After these steps, TLS connections are established successfully.

Additional information

System OpenSSL version:

OpenSSL 3.5.7 9 Jun 2026 (Library: OpenSSL 3.5.7 9 Jun 2026)

Distribution: Fedora 44 KDE Plasma

AmneziaVPN installation method: official installer (installed to /opt/AmneziaVPN)

AmneziaVPN version: 5.0.0.5

logs.txt

Originally created by @Todech on GitHub (Jul 31, 2026). Original GitHub issue: https://github.com/amnezia-vpn/amnezia-client/issues/2911 ### Описание проблемы (RU) При запуске AmneziaVPN на Linux с установленным OpenSSL 3.5.7 приложение не может загрузить TLS-бэкенд и постоянно выдаёт ошибку 1100 (в интерфейсе пользователя). В логах видно, что используется заглушечный бэкенд "cert-only", а все сетевые запросы завершаются с `UnknownNetworkError`. Корень проблемы — конфликт между встроенной библиотекой `libcrypto.so.3` (старого образца) и системной, которая требует символ `OPENSSL_3.0.1`, отсутствующий во встроенной версии. ### Шаги для воспроизведения 1. Установите AmneziaVPN из официального пакета (в `/opt/AmneziaVPN`). 2. Убедитесь, что в системе установлен OpenSSL 3.5.7 (вывод `openssl version`). 3. Запустите AmneziaVPN. 4. В интерфейсе появляется ошибка 1100, соединение не устанавливается. ### Ожидаемое поведение Приложение должно успешно загрузить OpenSSL-бэкенд Qt и установить защищённое соединение без ошибок. ### Фактическое поведение - Qt находит плагин `libqopensslbackend.so`, но не может загрузить системные библиотеки из-за конфликта версий. - В логах появляется: `qt.tlsbackend.ossl: Failed to load libssl/libcrypto.` - Используется бэкенд `cert-only`, который не поддерживает TLS. - Все сетевые запросы проваливаются, пользователь видит error 1100 и не может изменить конфигурацию API. ### Логи (ключевые фрагменты) qt.core.plugin.loader: Found metadata in lib /opt/AmneziaVPN/plugins/tls/[libqopensslbackend.so](https://libqopensslbackend.so/) qt.core.library: "/lib64/[libssl.so](https://libssl.so/).3.5.7" cannot load: /opt/AmneziaVPN/bin/../lib/[libcrypto.so](https://libcrypto.so/).3: version `OPENSSL_3.0.1' not found (required by /lib64/[libssl.so](https://libssl.so/).3.5.7) qt.tlsbackend.ossl: Failed to load libssl/libcrypto. qt.network.ssl: The backend "cert-only" does not support QSslKey qt.network.ssl: Active TLS backend does not support key creation qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed QNetworkReply::UnknownNetworkError ### Решение (проверено, работает) Проблема вызвана тем, что внутри `/opt/AmneziaVPN/` присутствуют встроенные копии OpenSSL (особенно `libcrypto.so.3`), которые конфликтуют с системными библиотеками. Достаточно удалить или переместить все файлы `libcrypto.so*` из папок установки, чтобы приложение начало использовать системные библиотеки. **Пошаговая инструкция:** 1. Откройте терминал и перейдите в каталог установки: ```bash cd /opt/AmneziaVPN 2. Создайте резервную папку (на всякий случай) 3. Найдите и переместите \ удалите `libcrypto.so.3` из /bin и /lib (`libcrypto.so.3` обычно хватает, можно удалить и libssl.so* и другие библиотеки libcrypto.so.*, однако без первого - второе не будет по идее загружаться) 4. Перезапустите AmneziaVPN – теперь он будет использовать системный OpenSSL 3.5.7, и ошибка 1100 исчезнет. После этих действий TLS-соединения устанавливаются успешно. Дополнительная информация Системная версия OpenSSL: 3.5.7 (OpenSSL 3.5.7 9 Jun 2026 (Library: OpenSSL 3.5.7 9 Jun 2026). Дистрибутив: Fedora 44 KDE Plasma Способ установки AmneziaVPN: официальный установщик в /opt/AmneziaVPN. Версия AmneziaVPN: 5.0.0.5 ### Problem description (EN) When launching AmneziaVPN on Linux with OpenSSL 3.5.7 installed, the application fails to load the TLS backend and persistently shows error 1100 in the user interface. Logs show that the dummy backend "cert-only" is being used, and all network requests fail with `UnknownNetworkError`. The root cause is a conflict between the bundled `libcrypto.so.3` library (older version) and the system, which requires the symbol `OPENSSL_3.0.1` that is missing from the bundled version. ### Steps to reproduce 1. Install AmneziaVPN from the official package (installed to `/opt/AmneziaVPN`). 2. Ensure OpenSSL 3.5.7 is installed on the system (`openssl version`). 3. Launch AmneziaVPN. 4. Error 1100 appears in the interface, connection fails, and API configuration cannot be changed. ### Expected behavior The application should successfully load the Qt OpenSSL backend and establish secure connections without errors. ### Actual behavior - Qt finds the plugin `libqopensslbackend.so` but fails to load system libraries due to version conflict. - Logs show: `qt.tlsbackend.ossl: Failed to load libssl/libcrypto.` - The backend falls back to "cert-only", which does not support TLS. - All network requests fail, and the user sees error 1100 in the interface and cannot modify API configuration. ### Logs (key fragments) qt.core.plugin.loader: Found metadata in lib /opt/AmneziaVPN/plugins/tls/[libqopensslbackend.so](https://libqopensslbackend.so/) qt.core.library: "/lib64/[libssl.so](https://libssl.so/).3.5.7" cannot load: /opt/AmneziaVPN/bin/../lib/[libcrypto.so](https://libcrypto.so/).3: version `OPENSSL_3.0.1' not found (required by /lib64/[libssl.so](https://libssl.so/).3.5.7) qt.tlsbackend.ossl: Failed to load libssl/libcrypto. qt.network.ssl: The backend "cert-only" does not support QSslKey qt.network.ssl: Active TLS backend does not support key creation qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed QNetworkReply::UnknownNetworkError ### Solution (verified, working) The issue is caused by bundled OpenSSL copies inside `/opt/AmneziaVPN/` (especially `libcrypto.so.3`) that conflict with system libraries. Removing or moving all `libcrypto.so*` files from the installation directories forces the application to use the system libraries. **Step-by-step instructions:** 1. Open a terminal and navigate to the installation directory: ```bash cd /opt/AmneziaVPN 2. Create a backup folder (just in case) 3. Find and move, or delete all OpenSSL files from /bin and /lib directories in /opt/AmneziaVPN (Usually removing `libcrypto.so.3` is sufficient; if the bundled libcrypto is not found, the bundled libssl or other bundled libcrypto.so.* will not be loaded either) 4. Restart AmneziaVPN – it will now use the system OpenSSL 3.5.7, and error 1100 disappears. After these steps, TLS connections are established successfully. Additional information System OpenSSL version: OpenSSL 3.5.7 9 Jun 2026 (Library: OpenSSL 3.5.7 9 Jun 2026) Distribution: Fedora 44 KDE Plasma AmneziaVPN installation method: official installer (installed to /opt/AmneziaVPN) AmneziaVPN version: 5.0.0.5 [logs.txt](https://github.com/user-attachments/files/30573420/logs.txt)
Author
Owner

@postal-aw7 commented on GitHub (Aug 1, 2026):

Спасибо, способ работает!

<!-- gh-comment-id:5152188025 --> @postal-aw7 commented on GitHub (Aug 1, 2026): Спасибо, способ работает!
Author
Owner

@acid23m commented on GitHub (Aug 9, 2026):

Unfortunately, it didn't help in my case.

OS Version: Manjaro 26.1.0
OpenSSL Version: OpenSSL 3.6.3 9 Jun 2026
Client Version: AmneziaVPN 5.0.0.5

<!-- gh-comment-id:5230339165 --> @acid23m commented on GitHub (Aug 9, 2026): Unfortunately, it didn't help in my case. OS Version: Manjaro 26.1.0 OpenSSL Version: OpenSSL 3.6.3 9 Jun 2026 Client Version: AmneziaVPN 5.0.0.5
Author
Owner

@Todech commented on GitHub (Aug 26, 2026):

Problem is solved by update to 5.0.1.5

<!-- gh-comment-id:5420170387 --> @Todech commented on GitHub (Aug 26, 2026): Problem is solved by update to 5.0.1.5
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
amnezia-vpn/amnezia-client#1326
No description provided.