first commit
This commit is contained in:
88
example.sh
Executable file
88
example.sh
Executable file
@@ -0,0 +1,88 @@
|
||||
#!/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)"
|
||||
|
||||
Reference in New Issue
Block a user