mirror of
https://github.com/EDeev/quizlab.git
synced 2026-10-07 20:49:34 +03:00
-subj "//CN=..." — обход подмены путей в Git Bash на Windows; на Linux openssl с ним падает. Теперь обычный "/CN=..." и MSYS_NO_PATHCONV=1 для Git Bash.
28 lines
1.3 KiB
Bash
28 lines
1.3 KiB
Bash
#!/bin/sh
|
||
|
||
set -e
|
||
# в Git Bash на Windows не даём MSYS превратить "/CN=..." в путь
|
||
export MSYS_NO_PATHCONV=1
|
||
mkdir -p certs
|
||
|
||
# 1. Генерация корневого сертификата root.crt и его rsa-ключа root.key
|
||
openssl req -x509 -new -nodes -newkey rsa:2048 \
|
||
-keyout certs/root.key -days 3650 \
|
||
-out certs/root.crt -subj "/CN=Root CA"
|
||
|
||
# 2. Генерация rsa-ключа для сертификата сервера и вспомогательного CSR-файла (Certificate Signing Request) на основе этого ключа
|
||
openssl req -new -nodes -newkey rsa:2048 \
|
||
-keyout certs/lab2.key -out certs/lab2.csr \
|
||
-subj "/CN=lab2 server cert"
|
||
|
||
# 3. Собственно, генерация сертификата сервера *.crt из *.csr-файла, сгенерированного выше
|
||
echo "subjectAltName=DNS:localhost,IP:127.0.0.1" > certs/extfile.txt
|
||
openssl x509 -req -in certs/lab2.csr -days 3650 \
|
||
-CA certs/root.crt -CAkey certs/root.key \
|
||
-CAcreateserial -out certs/lab2.crt \
|
||
-sha256 -extfile certs/extfile.txt
|
||
rm certs/extfile.txt
|
||
|
||
# 4. Удаление вспомогательного CSR-файла
|
||
rm certs/lab2.csr
|
||
echo "Done. Certificates written to ./certs/"
|