Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
mkchain — Инструмент с открытым исходным кодом, помогающий создать корректную цепочку SSL-сертификатов. | Kitploit
Инструменты/GitHubGitHub/trimstray/mkchain
Инструменты шифрования/дешифрованияКриптографияУтилиты и фреймворки
GitHubtrimstray/mkchain

mkchain

Инструмент с открытым исходным кодом, помогающий создать корректную цепочку SSL-сертификатов.

Репозиторий
381521 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

mkchain

Инструмент с открытым исходным кодом, который поможет вам собрать корректную цепочку SSL-сертификатов.

Travis-CI Version License

Описание • Как использовать • Параметры • Как это работает • Требования • Прочее • Лицензия


Главная

Описание

Это инструмент с открытым исходным кодом, который поможет вам собрать корректную цепочку SSL-сертификатов. Также он может помочь исправить неполную цепочку и загрузить все недостающие сертификаты центра сертификации. Вы также можете загрузить все сертификаты с удаленного сервера и получить правильную цепочку сертификатов.

Как использовать

Это просто:

root@kitploit:~
# Clone this repository
git clone https://github.com/trimstray/mkchain

# Go into the repository
cd mkchain

# Install
./setup.sh install

# Run the app
mkchain -i /data/certs -o /data/chain.crt
  • символическая ссылка на bin/mkchain помещается в /usr/local/bin
  • страница man помещается в /usr/local/man/man8

Параметры

Предоставляет следующие параметры:

root@kitploit:~
  Usage:
    mkchain <option|long-option>

  Examples:
    mkchain --in Root.crt --in Intermediate1.crt --in Server.crt --out bundle_chain_certs.crt
    mkchain --in /tmp/certs --out bundle_chain_certs.crt --with-root
    mkchain -i Server.crt -o bundle_chain_certs.crt
    mkchain -i https://incomplete-chain.badssl.com/ --with-root

  Options:
        --help        show this message
        --debug       displays information on the screen (debug mode)
    -i, --in          add certificates to merge (file, multiple files, directory with ssl certificates
                      or remote domain)
    -o, --out         saves the result (chain) to a file
        --with-root   add root certificate to certificates chain

-o|--out - без этого параметра mkchain сохраняет выходную цепочку в каталог mkchain/chains/.

Как это работает

Прежде чем читать, пожалуйста, ознакомьтесь со статьей о цепочке SSL-сертификатов.

Начнем с цепочки сертификатов ssllabs. Они поставляются вместе с mkchain и находятся в каталоге example/ssllabs.com, который дополнительно содержит каталог all (содержащий все сертификаты, необходимые для сборки цепочки) и каталог server_certificate (содержащий только сертификат сервера).

Правильная цепочка для домена ssllabs.com (результат команды openssl):

root@kitploit:~
Certificate chain
 0 s:/C=US/ST=California/L=Redwood City/O=Qualys, Inc./CN=ssllabs.com
   i:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2012 Entrust, Inc. - for authorized use only/CN=Entrust Certification Authority - L1K
 1 s:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2012 Entrust, Inc. - for authorized use only/CN=Entrust Certification Authority - L1K
   i:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2009 Entrust, Inc. - for authorized use only/CN=Entrust Root Certification Authority - G2
 2 s:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2009 Entrust, Inc. - for authorized use only/CN=Entrust Root Certification Authority - G2
   i:/C=US/O=Entrust, Inc./OU=www.entrust.net/CPS is incorporated by reference/OU=(c) 2006 Entrust, Inc./CN=Entrust Root Certification Authority

Выше показана полная цепочка, состоящая из:

  • Сертификат личности (сертификат сервера)

    выдан для ssllabs.com центром Entrust Certification Authority - L1K

  • Промежуточный сертификат

    выдан для Entrust Certification Authority - L1K центром Entrust Root Certification Authority - G2

  • Промежуточный сертификат

    выдан для Entrust Root Certification Authority - G2 центром Entrust Root Certification Authority

  • Корневой сертификат (самоподписанный сертификат)

    выдан для Entrust Root Certification Authority центром Entrust Root Certification Authority

Сценарий 1

В этом сценарии мы объединим все поставленные сертификаты. Пример запуска инструмента:

Master

Сценарий 2

В этом сценарии мы используем только сертификат сервера и используем его для получения остальных необходимых сертификатов. Затем, как указано выше, мы объединим все предоставленные сертификаты. Пример запуска инструмента:

Master

Цепочка сертификатов

Чтобы создать корректную цепочку, вы должны предоставить инструменту все необходимые сертификаты (если вы установили каталог для параметра -i|--in). Это будут:

  • Сертификат сервера
  • Промежуточные центры сертификации и Корневые центры сертификации

Это очень важно, потому что без них вы не сможете определить начало и конец цепочки.

Если вы укажете только файл сертификата в качестве значения -i|--in, mkchain автоматически загрузит все необходимые сертификаты.

Однако, если вы заглянете внутрь сгенерированной цепочки после генерации с помощью mkchain, вы не найдете там корневого сертификата.

Почему? Потому что самоподписанные корневые сертификаты не нужно/не следует включать в конфигурацию веб-сервера. Они не приносят пользы (клиенты всегда будут их игнорировать) и вызывают небольшое снижение производительности (задержка), поскольку увеличивают размер SSL-рукопожатия.

Если вы хотите добавить корневой сертификат в цепочку сертификатов, вызовите утилиту с параметром --with-root.

Пути сертификации

mkchain позволяет использовать два пути сертификации:

Master

Комментарии к выводу

При генерации цепочки сертификатов mkchain отображает комментарии с информацией о сертификатах, включая любые ошибки.

Вот список всех возможностей:

сертификат личности (пользовательский, серверный) не найден

Сообщение отображается при отсутствии сертификата сервера, который является началом цепочки. Это уникальный случай, потому что в этой ситуации mkchain завершает свою работу, отображая только эту информацию. Сертификат сервера — единственный сертификат, необходимый для правильного создания цепочки. Без этого сертификата корректная цепочка не будет создана.

найден корректный сертификат личности (пользовательский, серверный)

Обратная ситуация — сообщение отображается при обнаружении действительного сертификата сервера.

первый промежуточный сертификат не найден

Это сообщение появляется, когда первый из двух промежуточных сертификатов не найден. Эта информация не указывает явно на отсутствие второго промежуточного сертификата, но, с другой стороны, позволяет определить, существует ли промежуточный сертификат, на который был подписан сертификат сервера. Кроме того, оно может отображаться, если второй промежуточный сертификат был предоставлен.

второй промежуточный сертификат не найден

Аналогично предыдущему, но касается второго промежуточного сертификата. Однако возможно корректно создать цепочку, используя второй путь сертификации, например, используя первый промежуточный сертификат и заменяя второй основным сертификатом.

один или несколько промежуточных сертификатов не найдены

Это сообщение означает, что отсутствует один или все необходимые промежуточные сертификаты, и отображается при отсутствии корневого сертификата.

найдено 'n' корректных промежуточных сертификатов

Это сообщение указывает количество действительных промежуточных сертификатов.

корректный корневой сертификат не найден

Отсутствие корневого сертификата рассматривается как предупреждение. Конечно, при настройке сертификатов на стороне сервера не рекомендуется прикреплять корневой сертификат, но если вы создаете его с помощью mkchain, цепочка считается неполной, и отображается информация о некорректном создании цепочки.

в одном из сертификатов найдено пустое поле CN

Это сообщение не информирует об ошибке, а об отсутствии поля CN, что может произойти с некоторыми сертификатами (посмотрите на example/google.com). Поле Common Name идентифицирует имя хоста, связанное с сертификатом. В RFC3280 нет требования, чтобы Issuer DN имел CN. Большинство центров сертификации включают CN в Issuer DN, но некоторые этого не делают, как, например, этот центр Equifax.

Требования

mkchain использует внешние утилиты, которые должны быть установлены перед запуском:

  • OpenSSL (тестировалось на 1.1.0g/h)

Этот инструмент работает с:

  • GNU/Linux (тестировалось на Debian и CentOS)
  • Bash (тестировалось на 4.4.19)

MacOS/FreeBSD:

  • замените getopt(1) на версию, поддерживающую длинные опции GNU (pkg install getopt)
  • также работает на MacOS с greadlink из coreutils (устанавливается через homebrew)

Прочее

Участие в разработке

Смотрите это.

Архитектура проекта

Смотрите это.

Лицензия

GPLv3 : http://www.gnu.org/licenses/

Свободное программное обеспечение, Ура!

Скачать инструмент