89 lines
2.4 KiB
Bash
Executable File
89 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Beispiel-Skript zum Testen der Dummy CA API
|
|
|
|
set -e
|
|
|
|
CA_URL="http://localhost:8088"
|
|
|
|
echo "=== Dummy CA Test ==="
|
|
echo ""
|
|
|
|
# 1. Health-Check
|
|
echo "1. Health-Check..."
|
|
HEALTH_RESPONSE=$(curl -s -w "\n%{http_code}" "$CA_URL/health")
|
|
HTTP_CODE=$(echo "$HEALTH_RESPONSE" | tail -n1)
|
|
BODY=$(echo "$HEALTH_RESPONSE" | sed '$d')
|
|
|
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
echo "$BODY" | jq . 2>/dev/null || echo "$BODY"
|
|
echo "✓ Server ist erreichbar"
|
|
else
|
|
echo "✗ Server nicht erreichbar (HTTP $HTTP_CODE)"
|
|
echo " Stelle sicher, dass der Server auf Port 8088 läuft:"
|
|
echo " go run main.go"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 2. Private Key und CSR erstellen
|
|
echo "2. Erstelle Private Key und CSR..."
|
|
openssl genrsa -out test.key 2048 2>/dev/null
|
|
openssl req -new -key test.key -out test.csr -subj "/CN=test.example.com/O=Test Org" 2>/dev/null
|
|
echo "✓ Private Key und CSR erstellt"
|
|
echo ""
|
|
|
|
# 3. CSR kodieren und einreichen
|
|
echo "3. Reiche CSR ein..."
|
|
CSR_B64=$(cat test.csr | base64 -w 0)
|
|
RESPONSE=$(curl -s -X POST "$CA_URL/csr" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{
|
|
\"csr\": \"$CSR_B64\",
|
|
\"action\": \"sign\",
|
|
\"validity_days\": 365
|
|
}")
|
|
|
|
CERT_ID=$(echo $RESPONSE | jq -r '.id' 2>/dev/null)
|
|
if [ -z "$CERT_ID" ] || [ "$CERT_ID" = "null" ]; then
|
|
echo "✗ Fehler beim Signieren des CSR:"
|
|
echo "$RESPONSE" | jq . 2>/dev/null || echo "$RESPONSE"
|
|
exit 1
|
|
fi
|
|
echo "✓ CSR signiert - Zertifikat-ID: $CERT_ID"
|
|
echo ""
|
|
|
|
# 4. Zertifikat abrufen
|
|
echo "4. Rufe Zertifikat ab..."
|
|
curl -s "$CA_URL/certificate/$CERT_ID" | jq -r '.certificate' > test.crt
|
|
echo "✓ Zertifikat gespeichert in test.crt"
|
|
echo ""
|
|
|
|
# 5. Root-Zertifikat abrufen
|
|
echo "5. Rufe Root-Zertifikat ab..."
|
|
curl -s "$CA_URL/root" > root.crt
|
|
echo "✓ Root-Zertifikat gespeichert in root.crt"
|
|
echo ""
|
|
|
|
# 6. Zertifikat-Details anzeigen
|
|
echo "6. Zertifikat-Details:"
|
|
openssl x509 -in test.crt -text -noout | head -20
|
|
echo ""
|
|
|
|
# 7. Zertifikat mit Root verifizieren
|
|
echo "7. Verifiziere Zertifikat mit Root-CA..."
|
|
if openssl verify -CAfile root.crt test.crt > /dev/null 2>&1; then
|
|
echo "✓ Zertifikat ist gültig!"
|
|
else
|
|
echo "✗ Zertifikat-Verifizierung fehlgeschlagen"
|
|
fi
|
|
echo ""
|
|
|
|
echo "=== Test abgeschlossen ==="
|
|
echo "Dateien:"
|
|
echo " - test.key (Private Key)"
|
|
echo " - test.csr (Certificate Signing Request)"
|
|
echo " - test.crt (Signiertes Zertifikat)"
|
|
echo " - root.crt (Root-Zertifikat)"
|
|
|