Files
pangolin-extract-ssl/extract.sh

34 lines
1.2 KiB
Bash

#!/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