thint1 |
|
Статус: Новичок Группы: Участники
|
Здравствуйте! На странице проверки https://www.cryptopro.ru…ge/cades_bes_sample.html В чем может быть дело? |
|
|
thint1 |
|
Статус: Новичок Группы: Участники
|
Может кто-нибудь помочь разобраться? |
|
|
Максим Коллегин |
|
Статус: Сотрудник Группы: Администраторы Сказал «Спасибо»: 21 раз |
А можете приложить сертификат? |
Знания в базе знаний, поддержка в техподдержке |
|
|
WWW |
thint1 |
|
Статус: Новичок Группы: Участники
|
сертификат приложил |
|
|
thint1 |
|
Статус: Новичок Группы: Участники
|
Так же пробовал ставить КриптоПро CSP 4. Результат такой же. На Windows пробовал ставить тот же сертификат — на странице проверки ошибка про цепочку такая же, но подписание почему то срабатывает |
|
|
mxl |
|
Статус: Новичок Группы: Участники Поблагодарили: 1 раз в 1 постах |
Удалось разобраться? У меня аналогичная проблема на macOS. |
|
|
Александр Лавник |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 53 раз |
Автор: mxl Удалось разобраться? У меня аналогичная проблема на macOS. Здравствуйте. Приложите, пожалуйста, скриншот с ошибкой. |
Техническую поддержку оказываем тут |
|
|
|
mxl |
|
Статус: Новичок Группы: Участники Поблагодарили: 1 раз в 1 постах |
У меня сертификат, полученный здесь https://www.kartoteka.ru/uc/#carousel-ecp/4. Я следовал всем инструкциям по установке. И на странице выше подпись проходит проверку. Также прочитал статьи https://support.cryptopr…-s-kriptopro-csp-v-macos и https://habr.com/ru/post/450516/ Мне удается подписать файл, используя команду: Код:
Подпись этого файла проходит проверку на сайте госуслуг. Но я не могу подписать файл через КриптоПро CSP, выдает: Цитата: Процесс отмены не может быть продолжен — проверка сертификатов недоступна. Код ошибки: 0x800B010E (2148204814) Screenshot 2019-07-10 at 10.07.23.png (357kb) загружен 3,994 раз(а). Также подпись не проходит проверку на странице https://www.cryptopro.ru…e/cades_bes_sample.html.
Отредактировано пользователем 10 июля 2019 г. 10:23:53(UTC) |
|
|
Александр Лавник |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 53 раз |
Автор: mxl У меня сертификат, полученный здесь https://www.kartoteka.ru/uc/#carousel-ecp/4. Я следовал всем инструкциям по установке. И на странице выше подпись проходит проверку. Также прочитал статьи https://support.cryptopr…-s-kriptopro-csp-v-macos и https://habr.com/ru/post/450516/ Мне удается подписать файл, используя команду: Код:
Подпись этого файла проходит проверку на сайте госуслуг. Но я не могу подписать файл через КриптоПро CSP, выдает: Цитата: Процесс отмены не может быть продолжен — проверка сертификатов недоступна. Код ошибки: 0x800B010E (2148204814) Screenshot 2019-07-10 at 10.07.23.png (357kb) загружен 3,994 раз(а). Также подпись не проходит проверку на странице https://www.cryptopro.ru…e/cades_bes_sample.html.
Выполните команды: Код:
и проверьте создание подписи. |
Техническую поддержку оказываем тут |
|
|
|
mxl |
|
Статус: Новичок Группы: Участники Поблагодарили: 1 раз в 1 постах |
Автор: Александр Лавник Выполните команды: Код:
и проверьте создание подписи. Ничего не поменялось, те же ошибки. К слову, я уже импортировал данные сертификаты, но в хранилище mroot: Код:
|
|
|
Пользователи, просматривающие эту тему |
Guest |
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Максим2017_1 |
|
Статус: Активный участник Группы: Участники Сказал(а) «Спасибо»: 3 раз |
Здравствуйте, установил крипто про, эцп плагин и установил сертификаты. Но при проверке работоспособности плагина говорит , что Ошибка при проверке цепочки сертификатов возможно но комп. не установлены сертификатов УЦ. Выдавшего ваш сертификат. В Windows я делал след образом открывал личный сертификат переходил во вкладку пути сертификации, там видно что ему не нравилось и корневой можно прям от туда установить, а на линуксе как ? |
|
|
nickm |
|
Статус: Активный участник Группы: Участники Сказал(а) «Спасибо»: 312 раз |
Попробуйте считать сам файл сертификата и увидеть URL сертификата УЦ, например так: Код:
Код:
То же самое можно проделать в cptools. |
|
|
Максим2017_1 |
|
Статус: Активный участник Группы: Участники Сказал(а) «Спасибо»: 3 раз |
Автор: nickm Попробуйте считать сам файл сертификата и увидеть URL сертификата УЦ, например так: Код:
Код:
То же самое можно проделать в cptools. у меня вторая ссылка не открывается |
|
|
nickm |
|
Статус: Активный участник Группы: Участники Сказал(а) «Спасибо»: 312 раз |
Автор: Максим2017_1 у меня вторая ссылка не открывается О какой ссылке идёт речь? Я Вам привел пример вывода, и в нём ни по каким ссылкам переходить и не следует. Покажите Свой результат исполнения предложенной команды. |
|
|
Максим2017_1 |
|
Статус: Активный участник Группы: Участники Сказал(а) «Спасибо»: 3 раз |
Автор: nickm Автор: Максим2017_1 у меня вторая ссылка не открывается О какой ссылке идёт речь? Я Вам привел пример вывода, и в нём ни по каким ссылкам переходить и не следует. Покажите Свой результат исполнения предложенной команды. http://crl.fk.local/crl/ucfk_2022.crt |
|
|
nickm |
|
Статус: Активный участник Группы: Участники Сказал(а) «Спасибо»: 312 раз |
Автор: Максим2017_1 Автор: nickm Автор: Максим2017_1 у меня вторая ссылка не открывается О какой ссылке идёт речь? Я Вам привел пример вывода, и в нём ни по каким ссылкам переходить и не следует. Покажите Свой результат исполнения предложенной команды. http://crl.fk.local/crl/ucfk_2022.crt Это локальная ссылка и она у Вас не откроется. Если Вы действительно привели ссылку из своего сертификата, то промежуточный сертификат УЦ можете скачать по этой, общедоступной ссылке, http://crl.roskazna.ru/crl/ucfk_2022.crt |
|
|
Максим2017_1 |
|
Статус: Активный участник Группы: Участники Сказал(а) «Спасибо»: 3 раз |
Автор: nickm Это локальная ссылка и она у Вас не откроется. Если Вы действительно привели ссылку из своего сертификата, то промежуточный сертификат УЦ можете скачать по этой, общедоступной ссылке, http://crl.roskazna.ru/crl/ucfk_2022.crt Я скачал по этим ссылкам, корневые и поставил их при помощи cptool. Пока ничего не поменялось, проверив с помощью винды, выше описанным способом увидел что нет тех корневых каких нужно. А нет ли какой команды которая проверяла бы цепочку сертификатов и говорила какие нужны — но это я так от жира бесюсь. И не подскажите СУФД на astra linux работает…. |
|
|
nickm |
|
Статус: Активный участник Группы: Участники Сказал(а) «Спасибо»: 312 раз |
Автор: Максим2017_1 Я скачал по этим ссылкам, корневые и поставил их при помощи cptool. Пока ничего не поменялось Следует различать как корневые, так и промежуточные сертификаты; Автор: Максим2017_1 И не подскажите СУФД на astra linux работает…. СУФД — это веб-сервис работающие по ГОСТ TLS, поэтому при соответствующей/ должной настройке ПО всё должно работать. |
|
|
Пользователи, просматривающие эту тему |
Guest |
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Я не могу избавиться от ошибки при тестировании в КРИПТО-ПРО сертификата подписи.
«Ошибка 0x800B0109: Цепочка сертификатов обработана правильно, но обработка прервана на корневом сертификате, у которого отсутствует отношение доверия с поставщиком доверия.»
В Windows я свой сертификат установил и использую без проблем.
В Alt, аналогично, установил корневые сертификаты ФНС и Минцифры, как указано в Alt Linux Team — https://goo.su/iyyUJ. Но ошибка остается
« Последнее редактирование: 07.11.2022 12:34:00 от Skull »
Записан
«Ошибка 0x800B0109: Цепочка сертификатов обработана правильно, но обработка прервана на корневом сертификате, у которого отсутствует отношение доверия с поставщиком доверия.»
Для начала сообщите — какую версию СКЗИ Вы используете, версию указывайте в полном формате, а не просто v4, v5;
Покажите результат тестирования личного сертификата в cptools, ели Вы используете СКЗИ версии 5;
Для сертификатов ФНС может оказаться, что у Вас не хватает/ отсутствуют списки отзывов.
Записан
«Ошибка 0x800B0109: Цепочка сертификатов обработана правильно, но обработка прервана на корневом сертификате, у которого отсутствует отношение доверия с поставщиком доверия.»
Для начала сообщите — какую версию СКЗИ Вы используете, версию указывайте в полном формате, а не просто v4, v5;
Покажите результат тестирования личного сертификата в cptools, ели Вы используете СКЗИ версии 5;
Для сертификатов ФНС может оказаться, что у Вас не хватает/ отсутствуют списки отзывов.
КРИПТО-ПРО CSP 5.0.12000 Демо лицензия на 3 месяца
Действительно, не хватало списков отозванных сертификатов.
Заново установил корневые сертификаты и списки отзыва ФНС, как указано на этой странице https://goo.su/JlkN. Ошибка исчезла.
Большое спасибо!
Записан
Содержание
- Цепочка сертификатов не может быть построена до доверенного корневого сертификата
- Операционные системы Astra Linux
- Ошибка создания подписи: Не удается построить цепочку сертификатов 0x800B010A
- Почему возникает ошибка 0x800B010A
- Ошибка создания подписи: Не удается построить цепочку сертификатов 0x800B010A – как исправить
Цепочка сертификатов не может быть построена до доверенного корневого сертификата
При возникновении ошибки «Цепочка сертификатов не может быть построена до доверенного корневого сертификата.» необходимо выполнить проверку сертификата электронной подписи.
Алгоритм проверки электронной подписи:
В программном продукте 1С необходимо
1. перейти в раздел «Администрирование»
2. «Обмен электронными документами»
3. «Настройка электронной подписи и шифрования»
4. На вкладке «Сертификаты» открыть используемый сертификат
5. Нажать на кнопку «Проверить»
6. Ввести пароль закрытой части ключа и нажать «Проверить»
! Обращаем Ваше внимание, что программа сама увеличит количество * в поле «Пароль:» до 16 при проверке. Данное поведение является штатным и выступает дополнительной защитой конфиденциальных данных в виде количества символов в пароле. Проверка будет осуществлена на основании введенных Вами данных .
Если в ходе проверки напротив пункта «Корректность данных сертификата» возникнет сигнализирующий об ошибке красный символ, на него необходимо нажать для открытия технической информации об ошибке.
Если в технической информации об ошибке указано «Цепочка сертификатов не может быть построена до доверенного корневого
сертификата.» это обозначает, что цепочка сертификации выстроена не полностью. Данная ошибка чаще всего встречается при первичной установке сертификата. Для просмотра пути сертификации необходимо сохранить сертификат, указав директорию компьютера, где его можно будет найти. Сделать это можно из программы 1С открыв сертификат в настройках электронной подписи и шифрования и нажать кнопку «Сохранить в файл» и указать директорию операционной системы для сохранения файла.
После сохранения сертификата необходимо открыть его в сохраненной директории.
Открыть сертификат можно дважды нажав на него левой кнопкой мыши или правая кнопка мыши — Открыть.
На вкладке «Общие» в логотипе сертификата будет присутствовать сигнализирующий о проблеме желтый знак, а в сведениях о сертификате будет присутствовать надпись «Недостаточно информации для проверки этого сертификата».
Следующим этапом необходимо перейти во вкладку «Путь сертификации». Можно заметить, что путь сертификации состоит из одного личного сертификата, а в состоянии сертификата присутствует надпись «Невозможно обнаружить поставщика этого сертификата».
В компьютерной безопасности цифровые сертификаты проверяются с помощью цепочки доверия. Сертификаты удостоверяются ключами тех сертификатов, которые находятся выше в иерархии сертификатов. Наивысший сертификат в цепочке называется корневым.
Пример корректного пути сертификации
Решение: Восстановить путь сертификацию
В сертификате необходимо перейти во вкладку «Состав» и в верхнем окне необходимо найти и нажать на поле «Доступ к информации о центрах сертификации». В нижнем окне сертификата появится информация о доступах к сведениям центра сертификации, в котором необходимо найти ссылку, которая заканчивается на .cer или .crt. Данную ссылку необходимо скопировать от http:// до конца строки не включая URL=. Копирование производится при помощи комбинации клавиш Ctrl+C.
Открыть браузер и вставить скопированное ранее значение в адресную строку, нажать «Перейти» (Enter). Откроется окно просмотра загрузок, в котором браузер предложит сохранить или открыть файл. Необходимо нажать «Сохранить как» и указать директорию, куда произойдёт сохранение.
Произойдет скачивание сертификата удостоверяющего центра, который выдал личный сертификат. После скачивания необходимо перейти в указанную директорию и открыть скаченный сертификат. В нашем примере это сертификат astral-883-2018.
После открытия сертификата удостоверяющего центра необходимо нажать «Установить сертификат»
В открывшемся мастере импорта сертификатов выбрать Расположение хранилища: «Текущий пользователь» и нажать «Далее».
В следующем окне выбрать «Поместить все сертификаты в следующее хранилище» нажать «Обзор» и выбрать «Доверенные корневые центры сертификации», нажать «Далее» и завершить установку.
После появится окно предупреждения системы безопасности. Для установки сертификата необходимо нажать «Да»
Затем появится окно, сообщающее о том, что импорт сертификата успешно выполнен.
После установки сертификата удостоверяющего центра путь сертификации будет состоять уже из двух сертификатов: личного сертификата сотрудника организации, который ссылается на доверенный сертификат удостоверяющего центра, который выдал данному сотруднику сертификат.
Сертификат удостоверяющего центра не может сослаться на вышестоящий сертификат Головного удостоверяющего центра в виду его отсутствия на рабочем месте.
Для установки сертификата Головного удостоверяющего центра необходимо открыть сертификат удостоверяющего центра и перейти во вкладку «Состав». В верхнем окне выбрать поле «Идентификатор ключа центра сертификатов», а затем в нижнем окне скопировать серийный номер сертификата (Ctrl+C).
Для скачивания нужного сертификата Головного удостоверяющего центра необходимо перейти на Портал уполномоченного федерального органа в области использования электронной подписи и перейти на вкладку «ГОЛОВНОЙ УЦ» https://e-trust.gosuslugi.ru/mainca
Далее, используя сочетание клавиш Ctrl+F необходимо вызвать окно поиска и вставить в него скопированный серийный номер из сертификата удостоверяющего центра. Из представленного на сайте перечня сертификатов отобразиться тот, чей серийный номер совпадает. Именно данный сертификат Головного удостоверяющего центра нужно скачать. Для скачивания необходимо нажать на гиперссылку в строке «Отпечаток».
После нажатия на отпечаток произойдет скачивание сертификата Головного удостоверяющего центра. Необходимо нажать «Сохранить как» и выбрать необходимую директорию для сохранения сертификата Головного удостоверяющего центра.
Необходимо перейти в директорию, куда был скачан сертификат и открыть его.
В открывшемся сертификате необходимо нажать «Установить сертификат»
В мастере импорта сертификатов необходимо выбрать «Текущий пользователь» и нажать «Далее»
В следующем окне необходимо выбрать «Поместить все сертификаты в следующее хранилище», нажать «Обзор». В окне выбора хща сертификата необходимо поставить галочку «Показать физические хранилища», затем развернуть «Доверенные корневые центры сертификации» нажатием на «+» и выбрать «Локальный компьютер» и нажать «ОК». Завершить установку сертификата.
После установки сертификата Головного удостоверяющего центра путь сертификации личного сертификата восстановлен.
После восстановления пути сертификации ошибка не воспроизводится.
Источник
Операционные системы Astra Linux
Оперативные обновления и методические указания
Операционные системы Astra Linux предназначены для применения в составе информационных (автоматизированных) систем в целях обработки и защиты 1) информации любой категории доступа 2) : общедоступной информации, а также информации, доступ к которой ограничен федеральными законами (информации ограниченного доступа).
1) от несанкционированного доступа;
2) в соответствии с Федеральным законом от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (статья 5, пункт 2).
Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении. С 17 декабря 2019 года правообладателем, разработчиком и производителем операционной системы специального назначения «Astra Linux Special Edition» является ООО «РусБИТех-Астра».
На web-сайтах https://astralinux.ru/ и https://wiki.astralinux.ru представлена подробная информация о разработанных операционных системах семейства Astra Linux, а также техническая документация для пользователей операционных систем и разработчиков программного обеспечения.
Мы будем признательны Вам за вопросы и предложения, которые позволят совершенствовать наши изделия в Ваших интересах и адаптировать их под решаемые Вами задачи!
Репозитория открытого доступа в сети Интернет для операционной системы Astra Linux Special Edition нет. Операционная система распространяется посредством DVD-дисков.
Информацию о сетевых репозиториях операционной системы Astra Linux Common Edition Вы можете получить в статье Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.
В целях обеспечения соответствия сертифицированных операционных систем Astra Linux Special Edition требованиям, предъявляемым к безопасности информации, ООО «РусБИтех-Астра» осуществляет выпуск очередных и оперативных обновлений.
Очередные обновления (версии) предназначены для:
- реализации и совершенствования функциональных возможностей;
- поддержки современного оборудования;
- обеспечения соответствия актуальным требованиям безопасности информации;
- повышения удобства использования, управления компонентами и другие.
Оперативные обновления предназначены для оперативного устранения уязвимостей в экземплярах, находящихся в эксплуатации, и представляют собой бюллетень безопасности, который доступен в виде:
- инструкций и методических указаний по настройке и особенностям эксплуатации ОС, содержащих сведения о компенсирующих мерах или ограничениях по примене- нию ОС при эксплуатации;
- отдельных программных компонентов из состава ОС, в которые внесены изменения с целью устранения уязвимостей, инструкций по их установке и настройке, а также информации, содержащей сведения о контрольных суммах всех файлов оперативного обновления;
- обновлений безопасности, представляющих собой файл с совокупностью программных компонентов из состава ОС, в которые внесены изменения с целью устранения уязвимостей, а также информации, содержащей сведения о контрольных суммах всех файлов обновлений безопасности, указания по установке, настройке и особенностям эксплуатации ОС с установленными обновлениями безопасности.
Ввиду совершенствования нормативно-правовых документов в области защиты информации и в целях обеспечения соответствия информационных актуальным требованиям безопасности информации, а также обеспечения их долговременной эксплуатации, в том числе работоспособности на современных средствах вычислительной техники, рекомендуется на регулярной основе планировать проведение мероприятий по применению очередных и оперативных обновлений операционной системы.
Источник
Ошибка создания подписи: Не удается построить цепочку сертификатов 0x800B010A
Автор: Юрий Белоусов · 23.09.2020
Пользователи, использующие программы, работающие с СУФД, в момент подписания документа, могут столкнуться с появлением сообщения: «Ошибка создания подписи: Не удается построить цепочку сертификатов (0x800B010A)».
Например, она может возникнуть при подаче заявки на zakupki.gov.ru или другом портале, работающим с ЭЦП.
В этой статье детально рассмотрим в чем причина данной проблемы и какие методы использовать для ее решения.
Почему возникает ошибка 0x800B010A
Причина возникновения ошибки создания подписи 0x800B010A понятна из пояснительного текста: «Не удается построить цепочку сертификатов». То есть, один или несколько необходимых сертификатов могут отсутствовать, быть некорректно установленными или попросту истек их срок действия.
Для нормальной работы обязательно должны быть установлены следующие сертификаты:
Ошибка создания подписи: Не удается построить цепочку сертификатов 0x800B010A – как исправить
Чтобы исправить ошибку создания подписи: «Не удается построить цепочку сертификатов» (0x800B010A) необходимо правильно диагностировать проблемный сертификат. Сделать это можно с помощью специализированного ПО, либо – с помощью Internet Explorer.
- Следует запустить браузер Internet Explorer. В операционных системах Windows он является предустановленным;
- Открыть меню браузера, нажав на значок шестеренки в верхнем правом углу окна;
- Выбрать пункт «Свойства браузера»;
Альтернативный вариант – зайти в свойства браузера, воспользовавшись встроенным поиском Windows; - Перейти во вкладку «Содержание»;
- Нажать кнопку «Сертификаты»;
- Выбрать сертификат, которым необходимо подписать документ и нажать кнопку «Просмотр»;
- Перейти во вкладку «Путь сертификации»;
- Сертификат отмеченный красным крестиком или восклицательным знаком – и есть причина возникновения ошибки создания подписи: «Не удается построить цепочку сертификатов» (0x800B010A).
На скриншоте выше показано, как должна выглядеть цепочка. Если один из сертификатов отсутствует или установлен с ошибкой, то подпись документа будет невозможной.
В случае, если отсутствует сертификат головного удостоверяющего центра, то необходимо скачать и установить. Найти его можно на сайте поставщика сертификата. Узнать кто поставщик можно из свойств, посмотрев вкладку «Общие». Также нужно добавить промежуточные сертификаты.
Для установки личного сертификата необходима программа КриптоПро CSP.
Подробную инструкцию по установке корневого и личного сертификатов можно посмотреть в видео:
Важно! При установке сертификата Головного удостоверяющего центра необходимо поместить его в раздел «Доверенные корневые центры сертификации», личный – в раздел «Личные», остальные – в «Промежуточные центры сертификации».
Если все необходимые сертификаты присутствуют в цепочке, то следует проверить срок их действия и сведения о сертификате. Для этого нужно:
- Открыть список сертификатов;
- Выбрать нужный;
- Нажать кнопку «Просмотр»;
- Посмотреть сведения о сертификате в разделе «Общие», включая срок до которого он действителен.
- Если истек срок действия, то нужно обновить сертификат;
- Если нет доверия к сертификату, то необходимо установить его в корректную директорию;
- Если не удается проследить путь до доверенного центра, значит нарушена общая цепь. Скорее всего, отсутствуют промежуточные сертификаты.
Если проблему не удалось исправить и по прежнему появляется внутренняя ошибка с кодом 0x800B010A, то стоит переустановить КриптоПро CSP, а также обратиться в службу поддержки поставщика сертификата.
Есть удобный способ восстановить правильную цепочку сертификатов, который показан в следующем видео:
Не нашли ответ? Тогда воспользуйтесь формой поиска:
Источник
The problem is, that openssl -verify
does not do the job.
As Priyadi mentioned, openssl -verify
stops at the first self signed certificate, hence you do not really verify the chain, as often the intermediate cert is self-signed.
I assume that you want to be 101% sure, that the certificate files are correct before you try to install them in the productive web service. This recipe here performs exactly this pre-flight-check.
Please note that the answer of Peter is correct, however the output of openssl -verify
is no clue that everything really works afterwards. Yes, it might find some problems, but quite not all.
Here is a script which does the job to verify a certificate chain before you install it into Apache. Perhaps this can be enhanced with some of the more mystic OpenSSL magic, but I am no OpenSSL guru and following works:
#!/bin/bash
# This Works is placed under the terms of the Copyright Less License,
# see file COPYRIGHT.CLL. USE AT OWN RISK, ABSOLUTELY NO WARRANTY.
#
# COPYRIGHT.CLL can be found at http://permalink.de/tino/cll
# (CLL is CC0 as long as not covered by any Copyright)
OOPS() { echo "OOPS: $*" >&2; exit 23; }
PID=
kick() { [ -n "$PID" ] && kill "$PID" && sleep .2; PID=; }
trap 'kick' 0
serve()
{
kick
PID=
openssl s_server -key "$KEY" -cert "$CRT" "$@" -www &
PID=$!
sleep .5 # give it time to startup
}
check()
{
while read -r line
do
case "$line" in
'Verify return code: 0 (ok)') return 0;;
'Verify return code: '*) return 1;;
# *) echo "::: $line :::";;
esac
done < <(echo | openssl s_client -verify 8 -CApath /etc/ssl/certs/)
OOPS "Something failed, verification output not found!"
return 2
}
ARG="${1%.}"
KEY="$ARG.key"
CRT="$ARG.crt"
BND="$ARG.bundle"
for a in "$KEY" "$CRT" "$BND"
do
[ -s "$a" ] || OOPS "missing $a"
done
serve
check && echo "!!! =========> CA-Bundle is not needed! <========"
echo
serve -CAfile "$BND"
check
ret=$?
kick
echo
case $ret in
0) echo "EVERYTHING OK"
echo "SSLCertificateKeyFile $KEY"
echo "SSLCertificateFile $CRT"
echo "SSLCACertificateFile $BND"
;;
*) echo "!!! =========> something is wrong, verification failed! <======== ($ret)";;
esac
exit $ret
Note that the output after
EVERYTHING OK
is the Apache setting, because people usingNginX
orhaproxy
usually can read and understand this perfectly, too
There is a GitHub Gist of this which might have some updates
Prerequisites of this script:
- You have the trusted CA root data in
/etc/ssl/certs
as usual for example on Ubuntu - Create a directory
DIR
where you store 3 files:DIR/certificate.crt
which contains the certificateDIR/certificate.key
which contains the secret key for your webservice (without passphrase)DIR/certificate.bundle
which contains the CA-Bundle. On how to prepare the bundle, see below.
- Now run the script:
./check DIR/certificate
(this assumes that the script is namedcheck
in the current directory) - There is a very unlikely case that the script outputs
CA-Bundle is not needed
. This means, that you (read:/etc/ssl/certs/
) already trusts the signing certificate. But this is highly unlikely in the WWW. - For this test port 4433 must be unused on your workstation. And better only run this in a secure environment, as it opens port 4433 shortly to the public, which might see foreign connects in a hostile environment.
How to create the certificate.bundle
file?
In the WWW the trust chain usually looks like this:
- trusted certificate from
/etc/ssl/certs
- unknown intermediate certificate(s), possibly cross signed by another CA
- your certificate (
certificate.crt
)
Now, the evaluation takes place from bottom to top, this means, first, your certificate is read, then the unknown intermediate certificate is needed, then perhaps the cross-signing-certificate and then /etc/ssl/certs
is consulted to find the proper trusted certificate.
The ca-bundle must be made up in excactly the right processing order, this means, the first needed certificate (the intermediate certificate which signs your certificate) comes first in the bundle. Then the cross-signing-cert is needed.
Usually your CA (the authority who signed your certificate) will provide such a proper ca-bundle-file already. If not, you need to pick all the needed intermediate certificates and cat
them together into a single file (on Unix). On Windows you can just open a text editor (like notepad.exe
) and paste the certificates into the file, the first needed on top and following the others.
There is another thing. The files need to be in PEM format. Some CAs issue DER (a binary) format. PEM is easy to spot: It is ASCII readable. For mor on how to convert something into PEM, see How to convert .crt to .pem and follow the yellow brick road.
Example:
You have:
intermediate2.crt
the intermediate cert which signed yourcertificate.crt
intermediate1.crt
another intermediate cert, which singedintermediate2.crt
crossigned.crt
which is a cross signing certificate from another CA, which signedintermediate1.crt
crossintermediate.crt
which is another intermediate from the other CA which signedcrossigned.crt
(you probably will never ever see such a thing)
Then the proper cat
would look like this:
cat intermediate2.crt intermediate1.crt crossigned.crt crossintermediate.crt > certificate.bundle
And how can you find out which files are needed or not and in which sequence?
Well, experiment, until the check
tells you everything is OK. It is like a computer puzzle game to solve the riddle. Every. Single. Time. Even for pros. But you will get better each time you need to do this. So you are definitively not alone with all that pain. It’s SSL, ya’ know? SSL is probably one of the worst designs I ever saw in over 30 years of professional system administration. Ever wondered why crypto has not become mainstream in the last 30 years? That’s why. ’nuff said.