fix
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Определяем путь к файлу .env (в той же папке, что и скрипт)
|
||||
ENV_FILE="$(dirname "$0")/.env"
|
||||
|
||||
# Проверяем, существует ли файл .env, и загружаем его
|
||||
if [ -f "$ENV_FILE" ]; then
|
||||
source "$ENV_FILE"
|
||||
else
|
||||
echo "Ошибка: Файл конфигурации $ENV_FILE не найден!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 1. Проверяем, существуют ли файлы Root CA, необходимые для подписи
|
||||
if [ ! -f "root_ca.crt" ] || [ ! -f "root_ca.key" ]; then
|
||||
echo "Ошибка: Не найдены файлы root_ca.crt или root_ca.key!"
|
||||
echo "Сначала запустите скрипт build-root-cert.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 2. ПРОВЕРКА НАЛИЧИЯ УЖЕ ГОТОВОГО ПРОМЕЖУТОЧНОГО СЕРТИФИКАТА
|
||||
if [ -f "intermediate_ca.key" ] || [ -f "intermediate_ca.crt" ]; then
|
||||
echo "Внимание: Файлы промежуточного сертификата (intermediate_ca.key/crt) УЖЕ СУЩЕСТВУЮТ!"
|
||||
echo "⚠️ ПЕРЕЗАПИСЬ ЭТИХ ФАЙЛОВ ПРИВЕДЕТ К ТОМУ, ЧТО ВСЕ ВЫПУЩЕННЫЕ РАНЕЕ СЕРТИФИКАТЫ САЙТОВ ПЕРЕСТАНУТ РАБОТАТЬ!"
|
||||
echo ""
|
||||
read -p "Вы уверены, что хотите перевыпустить Промежуточный ЦС? [y/N]: " overwrite_response
|
||||
|
||||
overwrite_response=$(echo "$overwrite_response" | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
# По умолчанию (если просто нажат Enter) или если ответ не "y"/"yes" — отменяем выполнение
|
||||
if [[ ! "$overwrite_response" =~ ^(y|yes)$ ]]; then
|
||||
echo "Генерация отменена во избежание порчи действующих сертификатов."
|
||||
exit 0
|
||||
fi
|
||||
echo "Продолжаем генерацию и перезапись файлов..."
|
||||
fi
|
||||
|
||||
|
||||
echo "Генерация ключа и CSR для Промежуточного ЦС..."
|
||||
# Создаем ключ и запрос (CSR) для промежуточного ЦС
|
||||
openssl req -new -nodes -newkey rsa:4096 \
|
||||
-keyout intermediate_ca.key -out intermediate_ca.csr \
|
||||
-subj "/C=${CERT_COUNTRY}/L=${CERT_LOCALITY}/O=${CERT_ORG}/CN=${INT_CN}"
|
||||
|
||||
echo "Подпись промежуточного сертификата с помощью Root CA..."
|
||||
# Подписываем промежуточный сертификат с помощью Root CA
|
||||
openssl x509 -req -sha512 -days "$INT_DAYS" \
|
||||
-extfile intermediate_ca.ini -extensions "$INT_EXT_SECTION" \
|
||||
-CA root_ca.crt -CAkey root_ca.key -CAcreateserial \
|
||||
-in intermediate_ca.csr \
|
||||
-out intermediate_ca.crt
|
||||
|
||||
echo ""
|
||||
# Запрашиваем подтверждение у пользователя (Y - да, n - нет)
|
||||
read -p "Хотите установить промежуточный сертификат в систему как доверенный? [Y/n]: " response
|
||||
|
||||
# Переводим ответ в нижний регистр
|
||||
response=$(echo "$response" | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
# Если пользователь нажал Enter или ввел y/yes
|
||||
if [[ -z "$response" || "$response" =~ ^(y|yes)$ ]]; then
|
||||
echo "Установка промежуточного сертификата..."
|
||||
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
sudo cp intermediate_ca.crt /usr/local/share/ca-certificates/intermediate_ca.crt
|
||||
sudo update-ca-certificates
|
||||
else
|
||||
cp intermediate_ca.crt /usr/local/share/ca-certificates/intermediate_ca.crt
|
||||
update-ca-certificates
|
||||
fi
|
||||
|
||||
echo "Промежуточный сертификат успешно установлен!"
|
||||
else
|
||||
echo "Установка отменена."
|
||||
fi
|
||||
Reference in New Issue
Block a user