LINUX.ORG.RU
ФорумAdmin

openssl в упор не видит CA в ubuntu

 ,


0

1

openssl 1.1.1 ubuntu 18.04

Выполняю:

openssl s_client -connect site.ru:443

Ответ:

Verification error: unable to get local issuer certificate

Если же выполняю:

openssl s_client -connect site.ru:443 -CAfile /etc/ssl/certs/ca-certificates.crt

То всё нормально.

Что ему не нравится то ?

Если в openssl.cnf тот же самый путь для СА прописан:

[ са ]

default_ca = CA_default

[ CA_default ]

Dir = /etc/ssl

Certs = $dir/certs

crl_dir = $dir/crl

database = $dir/index.txt

new_certs_dir = $dir/newcerts

certificate = $dir/certs/ca-certificates.crt

serial = $dir/serial

Так что же ему не нравится то ?

★★

Последнее исправление: suffix (всего исправлений: 3)

Dir
$dir

возможно дело в регистре буквы d? не нашёл инфы, как собирают пакеты в убунте, но по дефолту openssl.cnf ищется в /usr/local/ssl. можно проверить, находится он или нет, так:

$ strace openssl version 2>&1 | grep cnf
openat(AT_FDCWD, "/etc/ssl/openssl.cnf", O_RDONLY) = 3

если в ответе справа будет -1 и ENOENT, то конфиг не находится

anonymous
()
Ответ на: комментарий от anonymous

1. В конфиге dir - это просто здесь так начиналось.

2. И в /etc/ssl и в usr/local/ssl - конфигурации и пути до СА в openssl.cnf одинаковы.

3. Команда ваша не запустилась - ругается на синтаксическую ошибку со скобкой.

suffix ★★
() автор топика
Ответ на: комментарий от suffix

команда — только первая строчка без $:

strace openssl version 2>&1 | grep cnf

кста, у тебя в конфиге Certs тоже с заглавной написано, если что.

-

вот, что-то похожее нашлось: https://stackoverflow.com/questions/12041512/openssl-unable-to-get-local-issu...

т.е. надо запустить скрипт

c_rehash

папробуй

anonymous
()
Ответ на: комментарий от suffix

ещё можно посмотреть openssl s_client -debug -connect site.ru:443 или -trace вместо/вместе с -debug.

но странно, что strace ничего не выдаёт, это значит, что твой openssl вообще конфиг не читает. ну, либо он может это делать в другом потоке, тогда надо добавить к strace ключ -f, либо у тебя не стоит strace, что тоже навряд ли, так как шелл выдал бы ошибку об отсутствующей команде. а может у тебя версия не такая как у меня и при вызове version openssl не читает конфиг. попробуй что-нибудь другое вместо version. у меня 1.1.1a, если что.

попробуй переустановить пакет openssl и его зависимости (ca-certifiacates и может ещё чего, я не знаю как это в убунте сделать). не забудь перед этим обновить индекс пакетов — apt-get update или как там и, возможно, удалить конфиги.

2. c_rehash от рута надо выполнять, наверное. типа sudo c_rehash.

anonymous
()
Ответ на: комментарий от anonymous

Таки не был установлен strace.

Установил-выполнил команду-вот ответ:

openat(AT_FDCWD, "/usr/local/ssl/openssl.cnf", O_RDONLY) = 3
suffix ★★
() автор топика
Ответ на: комментарий от suffix

почитал man ca, у тебя не хватает обязательных полей в конфиге. попробуй или какой-нибудь дефолтный конфиг или допиши поля. вот список обязательных:

new_certs_dir
certificate
private_key
default_enddate или default_days
default_crl_hours или default_crl_days
default_md
database (файл должен существовать)
serial (файл должен существовать и содержать валидный серийный номер)
policy
name_opt и cert_opt (не обязательно, но лучше чтобы были)

там в мане есть пример.

а может дело в чём-то другом. я, к сожалению, навряд ли тебе чем-то ещё помогу =(

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.