nas_scripts/generate_root_ca.sh

57 lines
2.0 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Настройки
CERT_DIR="$HOME/certs"
CA_NAME="myrootca"
DAYS=3650 # 10 лет
# Цвета
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m'
echo "Генерация корневого сертификата (Root CA)..."
# 1. Создание директории
mkdir -p "$CERT_DIR"
cd "$CERT_DIR" || exit 1
# Проверка: если CA уже существует, предупреждаем
if [ -f "${CA_NAME}.crt" ] && [ -f "${CA_NAME}.key" ]; then
echo -e "${RED}Внимание!${NC} Файлы ${CA_NAME}.crt и ${CA_NAME}.key уже существуют."
read -p "Перезаписать их? (это аннулирует все ранее выданные сертификаты) [y/N]: " confirm
if [[ ! $confirm =~ ^[Yy]$ ]]; then
echo "Отменено."
exit 0
fi
fi
# 2. Генерация приватного ключа (4096 бит)
echo "Генерация приватного ключа..."
openssl genrsa -out "${CA_NAME}.key" 4096 2>/dev/null
chmod 600 "${CA_NAME}.key" # Защита ключа
# 3. Генерация самоподписанного сертификата
echo "Генерация корневого сертификата..."
openssl req -x509 -new -nodes \
-key "${CA_NAME}.key" \
-sha256 \
-days ${DAYS} \
-out "${CA_NAME}.crt" \
-subj "/C=RU/ST=State/L=City/O=MyOrg/CN=TrueNAS Root CA"
# Проверка результата
if [ -f "${CA_NAME}.crt" ]; then
echo -e "${GREEN}Успешно!${NC}"
echo "Файлы созданы в: $CERT_DIR"
echo " Ключ: ${CA_NAME}.key (храните в секрете!)"
echo " Серт: ${CA_NAME}.crt (установите этот файл на все клиентские устройства)"
echo ""
echo "Информация о сертификате:"
openssl x509 -in "${CA_NAME}.crt" -noout -subject -dates
else
echo -e "${RED}Ошибка при создании сертификата.${NC}"
exit 1
fi