init
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Определяем путь к файлу .env и загружаем его
|
||||
ENV_FILE="$(dirname "$0")/.env"
|
||||
if [ -f "$ENV_FILE" ]; then
|
||||
source "$ENV_FILE"
|
||||
else
|
||||
echo "Ошибка: Файл конфигурации $ENV_FILE не найден!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Проверяем наличие Промежуточного ЦС для подписи
|
||||
if [ ! -f "intermediate_ca.crt" ] || [ ! -f "intermediate_ca.key" ]; then
|
||||
echo "Ошибка: Не найдены файлы intermediate_ca.crt или intermediate_ca.key!"
|
||||
echo "Сначала запустите скрипт build-intermediate-cert.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Проверяем наличие файла конфигурации SAN
|
||||
if [ ! -f "issuing_san.ini" ]; then
|
||||
echo "Ошибка: Файл конфигурации issuing_san.ini не найден!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Генерация универсального ключа и запроса (CSR) по файлу конфигурации..."
|
||||
# Создаем один общий запрос. В CN подставляем базовый домен из .env
|
||||
openssl req -new -nodes -newkey rsa:4096 \
|
||||
-keyout issuing.key -out issuing.csr \
|
||||
-subj "/C=${CERT_COUNTRY}/L=${CERT_LOCALITY}/O=${CERT_ORG}/CN=${DOMAIN_CN}"
|
||||
|
||||
echo "Подпись мультидоменного сертификата через Intermediate CA (на $ISSUING_DAYS дн)..."
|
||||
# Подписываем, строго используя расширения SAN из файла issuing_san.ini
|
||||
openssl x509 -req -sha512 -days "$ISSUING_DAYS" \
|
||||
-extfile issuing_san.ini -extensions "$ISSUING_EXT_SECTION" \
|
||||
-CA intermediate_ca.crt -CAkey intermediate_ca.key -CAserial intermediate_ca.srl -CAcreateserial \
|
||||
-in issuing.csr \
|
||||
-out issuing.crt
|
||||
|
||||
echo ""
|
||||
# Запрашиваем подтверждение сборки пакета для NPM
|
||||
read -p "Хотите собрать файлы privkey.pem и fullchain.pem? [Y/n]: " npm_response
|
||||
|
||||
# Переводим ответ в нижний регистр
|
||||
npm_response=$(echo "$npm_response" | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
# Если пользователь нажал Enter или ввел y/yes
|
||||
if [[ -z "$npm_response" || "$npm_response" =~ ^(y|yes)$ ]]; then
|
||||
echo "Сборка универсальных файлов privkey.pem и fullchain.pem..."
|
||||
# Копируем приватный ключ
|
||||
cat issuing.key > privkey.pem
|
||||
# Объединяем доменный и промежуточный сертификаты в единую цепочку (Full Chain)
|
||||
cat issuing.crt > fullchain.pem
|
||||
cat intermediate_ca.crt >> fullchain.pem
|
||||
|
||||
echo "Файлы сертификата (PEM-контейнеры) готовы в текущей папке:"
|
||||
echo " -> Приватный ключ: privkey.pem"
|
||||
echo " -> Цепочка сертификатов: fullchain.pem"
|
||||
fi
|
||||
|
||||
|
||||
echo ""
|
||||
echo "✅ Процесс выпуска сертификата успешно завершен!"
|
||||
Reference in New Issue
Block a user