проверка сертификата openSSL в Linux [закрыто]

JKJS

У меня есть эта цепочка сертификатов: rcert.pem (самоподписанный) ->scert.pem ->ccert.pem

Все три сертификата сгенерированы мной. Нет подключения к Интернету. Это идеальная работа в автономном режиме. Теперь ниже приведены некоторые команды и их вывод:

[email protected]:~/hari$ openssl verify rcert.pem
rcert.pem: C = IN, ST = OM, L = OM, O = HARI, OU = HARI, CN = OM, emailAddress = OM
error 18 at 0 depth lookup:self signed certificate
OK
[email protected]:~/hari$ openssl verify -CAfile rcert.pem scert.pem
scert.pem: OK
[email protected]:~/hari$ openssl verify -CAfile rcert.pem rcert.pem
rcert.pem: OK
[email protected]:~/hari$ openssl verify -CAfile rcert.pem -untrusted scert.pem ccert.pem
ccert.pem: C = IN, ST = HARI, L = HARI, O = HARI, OU = HARI, CN = HARI, emailAddress = HARI
error 24 at 1 depth lookup:invalid CA certificate
OK

Почему создается ошибка 24. Как ее убрать? Это что-то вроде доверенного или недоверенного?

Спасибо.

Ответы на вопрос(1)

Решение Вопроса

Получил ответ на свой вопрос:

1) Создан сертификат корневого ЦС с помощью этих команд:

openssl req -newkey rsa:1024 -sha1 -keyout rootkey.pem -out rootreq.pem

openssl x509 -req -in rootreq.pem -sha1 -signkey rootkey.pem -out rootcert.pem

2) Установил сертификат CA как доверенный сертификат с помощью следующих команд:

sudo mkdir /usr/share/ca-certificates/extra

sudo cp rootcert.pem /usr/share/ca-certificates/extra/rootcert.crt

sudo dpkg-reconfigure ca-certificates

sudo update-ca-certificates

3) Создан промежуточный сертификат, подписанный корневым центром сертификации, с помощью следующих команд:

openssl req -newkey rsa:1024 -sha1 -keyout skey.pem -out sreq.pem

sudo openssl x509 -req -in sreq.pem -sha1 -CA /etc/ssl/certs/rootcert.pem -CAkey rootkey.pem -CAcreateserial -out scert.pem

4) Создан сертификат клиента, подписанный промежуточным ЦС, с помощью следующих команд:

openssl req -newkey rsa:1024 -sha1 -keyout ckey.pem -out creq.pem

openssl x509 -req -in creq.pem -sha1 -CA scert.pem -CAkey skey.pem -CAcreateserial -out ccert.pem

Теперь Chain Of Trust работает нормально:

1) проверка корневого ЦС

openssl verify rootcert.pem 
rootcert.pem: OK

2) проверка промежуточного СА

openssl verify scert.pem 
scert.pem: OK

3) проверка сертификата клиента

openssl verify -CAfile scert.pem ccert.pem
ccert.pem: OK
 DSimon20 янв. 2016 г., 20:33
Внимание, приведенные выше команды проверки цепочки сертификатов более строгие, чем вы могли ожидать! По умолчанию, в дополнение к проверке данного CA-файла, они также проверяют наличие подходящих CA в системе.Каталог сертификатов, например / И т.д. / SSL / сертификаты. Чтобы предотвратить такое поведение и убедиться, что выДля повторной проверки вашего конкретного CA-сертификата также передайте опцию -CApath с несуществующим каталогом, например: "openssl проверяет -Cpath nosuchdir -CAfile scert.pem ccert.pem "
 YorickH13 февр. 2014 г., 11:47
Молодцы по поиску решения. Хороший и полный мини-учебник. Небольшое замечание для тех, кто нашел это сейчас, измените его на 2048 байтов и sha256, так как они более распространены в наши дни.
 prayagupd01 сент. 2017 г., 23:08
это очень круто, работает на Linux. но как установить root-сертификат на Mac ??

Ваш ответ на вопрос