Skip to content

andrei-s96s/certgen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CertGen — Генератор CA и подписанных сертификатов

CertGen — это простой Python-скрипт для генерации собственного корневого центра сертификации (CA) и выпуска подписанных им сертификатов для веб-серверов, RDP, VPN и других сервисов. Все параметры задаются в YAML-конфиге.


Возможности

  • Генерация корневого CA (ca.key, ca.crt)
  • Генерация сертификатов с поддержкой Subject Alternative Name (SAN: DNS и IP)
  • Экспорт сертификатов только в формате PFX (.pfx) с единым паролем
  • Простая настройка через config.yaml
  • Повторное использование CA для выпуска новых сертификатов
  • Минимальный вывод, только результат

Установка

  1. Клонируйте репозиторий или скачайте файлы в папку:
    git clone https://github.com/andrei-s96s/certgen.git
    cd certgen
  2. Установите зависимости:
    pip install -r requirements.txt

Пример конфига (config.yaml)

ca:
  common_name: "My Root CA"
  country: "RU"
  organization: "MyOrg"
  validity_days: 3650
  pfx_password: "vpnpass"

certs:
  - common_name: "vpn.example.com"
    san_dns: ["vpn.example.com", "vpn2.example.com"]
    san_ip: ["192.168.1.10", "10.0.0.5"]
    validity_days: 825
  - common_name: "rdp.example.com"
    san_dns: ["rdp.example.com"]
    san_ip: []
    validity_days: 825
  • ca — параметры корневого центра сертификации (CA)
  • certs — список сертификатов для генерации
  • san_dns — дополнительные DNS-имена (SAN)
  • san_ip — дополнительные IP-адреса (SAN)
  • pfx_password — общий пароль для всех .pfx-файлов

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

  1. Отредактируйте config.yaml под свои задачи.
  2. Запустите генератор:
    python certgen.py
  3. В папке появятся:
    • ca.key, ca.crt — корневой сертификат и ключ (используйте для доверия)
    • *.pfx — сертификаты для сервисов (импортируйте в Windows, IIS, RDP и т.д.)

Импорт CA в доверенные (Windows)

  1. Откройте ca.crt двойным кликом.
  2. Нажмите "Установить сертификат".
  3. Выберите "Локальный компьютер" → "Доверенные корневые центры сертификации".
  4. Завершите мастер установки.

Импорт PFX в Windows/RDP/IIS

  1. Откройте .pfx двойным кликом или через оснастку MMC → Сертификаты.
  2. Введите пароль из config.yaml (pfx_password).
  3. Следуйте инструкциям мастера.

Извлечение .crt и .key из .pfx (если нужно)

openssl pkcs12 -in имя.pfx -clcerts -nokeys -out имя.crt
openssl pkcs12 -in имя.pfx -nocerts -nodes -out имя.key

FAQ

Q: Как добавить новый сертификат? A: Просто добавьте новую секцию в certs в config.yaml и перезапустите скрипт. CA не пересоздастся, а подпишет новый сертификат.

Q: Как пересоздать CA? A: Удалите ca.key и ca.crt из папки, затем запустите скрипт — будет создан новый CA.

Q: Почему браузер/клиент не доверяет сертификату? A: Установите ca.crt в доверенные корневые сертификаты на клиенте.

Q: Можно ли добавить email или другие поля в SAN? A: Да, скрипт легко дорабатывается для поддержки email. Обратитесь к автору или посмотрите документацию cryptography.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages