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