Добавить extract.sh
This commit is contained in:
34
extract.sh
Normal file
34
extract.sh
Normal file
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
|
||||
ACME="acme.json"
|
||||
DOMAIN="foto.smolkik.ru"
|
||||
OUT="/opt/certs/$DOMAIN"
|
||||
|
||||
mkdir -p "$OUT"
|
||||
|
||||
# Извлекаем JSON-объект сертификата для нужного домена
|
||||
CERT_JSON=$(jq -r --arg DOMAIN "$DOMAIN" '
|
||||
.letsencrypt.Certificates[]
|
||||
| select(.domain.main == $DOMAIN)
|
||||
' "$ACME")
|
||||
|
||||
if [ -z "$CERT_JSON" ]; then
|
||||
echo "Ошибка: сертификат для домена $DOMAIN не найден в $ACME"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Извлекаем fullchain (сертификат + промежуточные)
|
||||
echo "$CERT_JSON" | jq -r '.certificate' | base64 -d > "$OUT/fullchain.pem"
|
||||
|
||||
# Извлекаем приватный ключ
|
||||
echo "$CERT_JSON" | jq -r '.key' | base64 -d > "$OUT/privkey.pem"
|
||||
|
||||
# Извлекаем ТОЛЬКО сертификат домена (без цепочки)
|
||||
# Для этого нужно из fullchain.pem взять первый сертификат
|
||||
awk 'BEGIN {n=0} /-----BEGIN CERTIFICATE-----/ {n++} n==1 {print} /-----END CERTIFICATE-----/ && n==1 {exit}' "$OUT/fullchain.pem" > "$OUT/cert.pem"
|
||||
|
||||
chmod 600 "$OUT/privkey.pem"
|
||||
chmod 644 "$OUT/cert.pem" "$OUT/fullchain.pem"
|
||||
|
||||
echo "Сертификаты сохранены в $OUT:"
|
||||
ls -la "$OUT"/*.pem
|
||||
Reference in New Issue
Block a user