Bug 34370 - Не видит системных сертификатов SSL
Summary: Не видит системных сертификатов SSL
Status: CLOSED WORKSFORME
Alias: None
Product: Sisyphus
Classification: Development
Component: nextcloud-client (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: ekorneechev@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-12-21 01:20 MSK by Vitaly Lipatov
Modified: 2019-06-14 17:58 MSK (History)
2 users (show)

See Also:


Attachments
trace nextcloud (5.57 KB, text/plain)
2017-12-28 10:22 MSK, Evgeniy Korneechev
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2017-12-21 01:20:27 MSK
При подключении к серверу сообщает

Не удалось осуществить безопасное подключение к noc.eterfund.ru:
Не удалось найти сертификат издателя локального сертификата
Сертификат Let's Encrypt Authority X3
Организация: Let's Encrypt
Подразделение: <не указано>
Страна: US
Отпечаток (MD5): b1:54:09:27:4f:54:ad:8f:02:3d:3b:85:a5:ec:ec:5d

strace:
[pid 30517] open("/etc/ssl/certs/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 24</etc/ssl/certs>
[pid 30517] fstat(24</etc/ssl/certs>, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
[pid 30517] statfs("/etc/ssl/certs/", {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=6266523, f_bfree=952285, f_bavail=628196, f_files=1602496, f_ffree=1208397, f_fsid={val=[2253829844, 2841765388]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RELATIME}) = 0
[pid 30517] getdents(24</etc/ssl/certs>, /* 4 entries */, 32768) = 120
[pid 30517] stat("/etc/ssl/certs/98ec67f0.0", {st_mode=S_IFREG|0644, st_size=856163, ...}) = 0
[pid 30517] close(24</etc/ssl/certs>)   = 0
[pid 30583] stat("/etc/ssl/certs//2e5ac55d.0", 0x7f0f9501bff0) = -1 ENOENT (No such file or directory)
[pid 30583] stat("/usr/lib/ssl/certs//2e5ac55d.0", 0x7f0f9501bff0) = -1 ENOENT (No such file or directory)
[pid 30583] stat("/var/ssl/certs//2e5ac55d.0", 0x7f0f9501bff0) = -1 ENOENT (No such file or directory)
[pid 30583] stat("/usr/local/ssl/certs//2e5ac55d.0", 0x7f0f9501bff0) = -1 ENOENT (No such file or directory)
[pid 30583] stat("/etc/openssl/certs//2e5ac55d.0", 0x7f0f9501bff0) = -1 ENOENT (No such file or directory)
[pid 30583] stat("/opt/openssl/certs//2e5ac55d.0", 0x7f0f9501bff0) = -1 ENOENT (No such file or directory)
[pid 30583] stat("/etc/ssl/certs//4f06f81d.0", 0x7f0f9501bff0) = -1 ENOENT (No such file or directory)
[pid 30583] stat("/usr/lib/ssl/certs//4f06f81d.0", 0x7f0f9501bff0) = -1 ENOENT (No such file or directory)
[pid 30583] stat("/var/ssl/certs//4f06f81d.0", 0x7f0f9501bff0) = -1 ENOENT (No such file or directory)
[pid 30583] stat("/usr/local/ssl/certs//4f06f81d.0", 0x7f0f9501bff0) = -1 ENOENT (No such file or directory)
[pid 30583] stat("/etc/openssl/certs//4f06f81d.0", 0x7f0f9501bff0) = -1 ENOENT (No such file or directory)
[pid 30583] stat("/opt/openssl/certs//4f06f81d.0", 0x7f0f9501bff0) = -1 ENOENT (No such file or directory)


Видимо, оно умеет искать в списке сертификатов (перебирая безумное количество путей), но не умеет читать ca-bundle.crt (может, и верно?)
Comment 1 Evgeniy Korneechev 2017-12-21 09:19:32 MSK
А на каком этапе? После ввода логина/пароля?

Также просьба проверить в owncloud-client
Comment 2 Vitaly Lipatov 2017-12-21 11:19:21 MSK
(В ответ на комментарий №1)
> А на каком этапе? После ввода логина/пароля?
Это при установке HTTPS-соединения. То есть, конечно, до ввода логина.
Визуально — сразу после ввода хоста.
 
> Также просьба проверить в owncloud-client
То же самое.

Судя по перебору каталогов, есть две проблемы:
- недоработка в openssl, которая не позволяет приложению без хаков и переборов воспользоваться сертификатами
- недостаточность хаков, из-за которой openssl не видит локальное хранилище.
Comment 3 Evgeniy Korneechev 2017-12-25 16:38:49 MSK
WORKSFORME:
$ rpm -q nextcloud-client openssl libssl10 libcrypto10 
Сизиф x86_64, i686:
nextcloud-client-2.3.3-alt3.S1.x86_64
openssl-1.0.2n-alt1.x86_64
libssl10-1.0.2n-alt1.x86_64
libcrypto10-1.0.2n-alt1.x86_64

p8 x86_64:
nextcloud-client-2.3.3-alt3.M80P.1
openssl-1.0.2n-alt0.M80P.1
libssl10-1.0.2n-alt0.M80P.1
libcrypto10-1.0.2n-alt0.M80P.1

В обоих случаях доходит до запроса логин/пароля.
На старом openssl и lib* - 1.0.2j - тоже все ОК.
Comment 4 Vitaly Lipatov 2017-12-26 01:08:49 MSK
(В ответ на комментарий №3)
> WORKSFORME:
> $ rpm -q nextcloud-client openssl libssl10 libcrypto10 
> Сизиф x86_64, i686:
> nextcloud-client-2.3.3-alt3.S1.x86_64
> openssl-1.0.2n-alt1.x86_64
> libssl10-1.0.2n-alt1.x86_64
> libcrypto10-1.0.2n-alt1.x86_64

Обновился до этих версий — то же самое.

Можете показать хвост strace -f -y nextcloud, посвящённый /et/ssl/certs?
Comment 5 Evgeniy Korneechev 2017-12-28 10:22:44 MSK
Created attachment 7338 [details]
trace nextcloud

$ strace -f -y nextcloud > log.txt 2>&1
$ grep ssl log.txt > trace_grep_ssl.txt
Comment 6 Evgeniy Korneechev 2019-05-07 16:36:09 MSK
Как сейчас обстоит дело в версии 2.5.2?
Comment 7 Vitaly Lipatov 2019-06-14 17:58:21 MSK
Проверил с
nextcloud-client-2.5.2-alt1.x86_64
сертификат видит и показывает зелёный замок.
Проблемы нет.
Comment 8 Vitaly Lipatov 2019-06-14 17:58:23 MSK
Проверил с
nextcloud-client-2.5.2-alt1.x86_64
сертификат видит и показывает зелёный замок.
Проблемы нет.