# Перейти в директорию промежуточного ЦА или выйти с ошибкой, если это не удалось
pushd"$IMM_CA"||{ msg "Error: Failed to change directory to $IMM_CA""Ошибка: Не удалось перейти в каталог $IMM_CA";}
# Генерация RSA ключа для промежуточного ЦА с шифрованием AES-256
openssl genrsa -aes256 -out private/intermediate.key.pem -passout "pass:$SERT_PASS"4096||{ msg "Error: Failed to generate RSA key for intermediate CA""Ошибка: Не удалось создать RSA‑ключ для промежуточного ЦА";}
# Установка прав доступа для ключа промежуточного ЦА
chmod 400 private/intermediate.key.pem
# Создание CSR для промежуточного ЦА
openssl req -config immissuer.conf -new -sha256 -key private/intermediate.key.pem -out csr/intermediate.csr.pem -passin "pass:$SERT_PASS"||{ msg "Error: Failed to create CSR for intermediate CA""Ошибка: Не удалось создать запрос на сертификат для промежуточного ЦА";}
# Вернуться в исходную директорию или выйти с ошибкой, если это не удалось
popd||{ msg "Can't return to old directory""Невозможно вернуться к старому каталогу";}
# Перейти в директорию корневого ЦА или выйти с ошибкой, если это не удалось
pushd"$ROOT_CA"||{ msg "Error: Failed to change directory to $ROOT_CA""Ошибка: Не удалось перейти в каталог $ROOT_CA";}
# Вернуться в исходную директорию или выйти с ошибкой, если это не удалось
popd||{ msg "Can't return to old directory""Невозможно вернуться к старому каталогу";}
# Создание цепочки сертификатов
cat "$IMM_CA/certs/intermediate.cert.pem""$ROOT_CA/certs/ca.cert.pem" >"$IMM_CA/certs/ca-chain.cert.pem"||{ msg "Error: Failed to create CA chain certificate""Ошибка: Не удалось создать цепочку сертификатов ЦА";}
# Проверка сертификата промежуточного ЦА с использованием корневого центра сертификации
openssl verify -CAfile "$ROOT_CA/certs/ca.cert.pem""$IMM_CA/certs/intermediate.cert.pem"||{ msg "Error: Failed to verify intermediate CA certificate""Ошибка: Не удалось проверить сертификат промежуточного ЦА";}
fi
# Конец создания промежуточного CA
mkdir -p server_certs
pushd server_certs || exit
# Создание директории с именем первого элемента, если она не существует
# Перейти в директорию промежуточного ЦА или выйти с ошибкой, если это не удалось
pushd"$IMM_CA"||{ msg "Error: Failed to change directory to $IMM_CA""Ошибка: Не удалось перейти в каталог $IMM_CA";}
# Генерация RSA ключа для промежуточного ЦА с шифрованием AES-256
openssl genrsa -aes256 -out private/intermediate.key.pem -passout "pass:$SERT_PASS"4096||{ msg "Error: Failed to generate RSA key for intermediate CA""Ошибка: Не удалось создать RSA‑ключ для промежуточного ЦА";}
# Установка прав доступа для ключа промежуточного ЦА
chmod 400 private/intermediate.key.pem
# Создание CSR для промежуточного ЦА
openssl req -config immissuer.conf -new -sha256 -key private/intermediate.key.pem -out csr/intermediate.csr.pem -passin "pass:$SERT_PASS"||{ msg "Error: Failed to create CSR for intermediate CA""Ошибка: Не удалось создать запрос на сертификат для промежуточного ЦА";}
# Вернуться в исходную директорию или выйти с ошибкой, если это не удалось
popd||{ msg "Can't return to old directory""Невозможно вернуться к старому каталогу";}
# Перейти в директорию корневого ЦА или выйти с ошибкой, если это не удалось
pushd"$ROOT_CA"||{ msg "Error: Failed to change directory to $ROOT_CA""Ошибка: Не удалось перейти в каталог $ROOT_CA";}
# Вернуться в исходную директорию или выйти с ошибкой, если это не удалось
popd||{ msg "Can't return to old directory""Невозможно вернуться к старому каталогу";}
# Создание цепочки сертификатов
cat "$IMM_CA/certs/intermediate.cert.pem""$ROOT_CA/certs/ca.cert.pem" >"$IMM_CA/certs/ca-chain.cert.pem"||{ msg "Error: Failed to create CA chain certificate""Ошибка: Не удалось создать цепочку сертификатов ЦА";}
# Проверка сертификата промежуточного ЦА с использованием корневого центра сертификации
openssl verify -CAfile $ROOT_CA/certs/ca.cert.pem $IMM_CA/certs/intermediate.cert.pem ||{ msg "Error: Failed to verify intermediate CA certificate""Ошибка: Не удалось проверить сертификат промежуточного ЦА";}