x509cert

Network Analysis

Минималистичный инструмент и библиотека на C99 для генерации X.509 сертификатов и CSR. Использует BearSSL для декодирования ключей и вычисления подписей. Не выполняет динамических аллокаций, использует только несколько libc-функций. В пентесте: быстрое создание PKI для лаборатории, генерация самоподписанных сертификатов для HTTPS C2, тестирование проверки TLS-клиентами, аудит mTLS-конфигурации. Поддерживает SAN (subjectAltName), кастомные сроки действия, клиентские и серверные сертификаты.

Добавлен 16.07.2026 · Обновлён 16.07.2026 · Network Analysis
Установка
# Требования: BearSSL (libbearssl), C99 компилятор
git clone https://git.sr.ht/~mcf/x509cert
cd x509cert
make
sudo make install

# Создать самоподписанный сертификат (нужен ключ)
# Генерация ECDSA P-256 ключа (через openssl)
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -out server.key

# Выдать сертификат с SAN
x509cert -a DNS:c2.example.com -a IP:192.168.1.100 -d 365 server.key "CN=c2.example.com" > server.crt

# Генерация CSR
x509cert -r -a DNS:client.local server.key "CN=client" > client.csr

# Выдать клиентский сертификат подписав CSR CA-ключом
x509cert -c ca.crt -k ca.key -d 90 client.key "CN=pentest-client" > client.crt

# Опции:
#   -r          -- генерировать CSR (PKCS#10), не сертификат
#   -a altname  -- добавить SAN (DNS:host или IP:addr)
#   -c cert     -- сертификат издателя (CA)
#   -k key      -- ключ издателя (CA key)
#   -d days     -- срок действия в днях
#   -s serial   -- серийный номер
переведено ИИ

x509cert

Статус сборок на builds.sr.ht

x509cert — это инструмент и библиотека для генерации сертификатов X.509 и запросов на сертификат. Он написан на C99 и использует BearSSL для декодирования ключей и вычисления подписей.

Как и BearSSL, библиотека libx509cert минимально использует стандартную библиотеку. Она не выполняет динамического выделения памяти и использует лишь несколько базовых функций libc.

Использование инструмента

x509cert [-C] [-a altname]... [-c issuercert] [-k issuerkey] [-b notbefore] [-d duration] [-s serial] key [subject]
x509cert -r [-a altname]... key [subject]

Если используется флаг -r, создается сертификат запроса PKCS#10. В противном случае создается сертификат X.509. В обоих случаях структура кодируется в формате PEM и записывается в стандартный вывод. Для более подробной информации смотрите x509cert(1).

Использование библиотеки

Смотрите x509cert(3).

Комментарии
Войдите, чтобы оставить комментарий