Files
2026-01-24 12:16:10 +02:00

234 lines
10 KiB
PHP

@extends('layouts.app')
@section('title', 'SSL Certificate - ' . $site->name)
@section('content')
<div class="container-fluid">
<!-- Page Header -->
<div class="mb-4">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{{ route('ssl.index') }}">SSL Certificates</a></li>
<li class="breadcrumb-item active">{{ $site->name }}</li>
</ol>
</nav>
<div class="d-flex justify-content-between align-items-center">
<div>
<h1 class="h2 mb-2">{{ $site->name }}</h1>
<p class="text-muted">{{ $site->url }}</p>
</div>
@if($latestCert)
@php
$daysUntilExpiry = $latestCert->expires_at ? now()->diffInDays($latestCert->expires_at, false) : null;
@endphp
<div>
@if($daysUntilExpiry === null)
<span class="badge bg-secondary fs-6 px-3 py-2">Status Unknown</span>
@elseif($daysUntilExpiry < 0)
<span class="badge bg-danger fs-6 px-3 py-2">
<i class="bi bi-shield-x"></i> Certificate Expired
</span>
@elseif($daysUntilExpiry < 30)
<span class="badge bg-warning text-dark fs-6 px-3 py-2">
<i class="bi bi-clock-history"></i> Expires in {{ $daysUntilExpiry }} days
</span>
@else
<span class="badge bg-success fs-6 px-3 py-2">
<i class="bi bi-shield-check"></i> Valid Certificate
</span>
@endif
</div>
@endif
</div>
</div>
@if($latestCert)
<!-- Current Certificate Info -->
<div class="row g-4 mb-4">
<div class="col-md-6">
<div class="card border-0 shadow-sm h-100">
<div class="card-header bg-white">
<h5 class="mb-0">
<i class="bi bi-info-circle me-2"></i>
Certificate Details
</h5>
</div>
<div class="card-body">
<div class="mb-3">
<div class="text-muted small mb-1">Issuer</div>
<div class="fw-semibold">{{ $latestCert->issuer ?? 'Unknown' }}</div>
</div>
<div class="mb-3">
<div class="text-muted small mb-1">Subject</div>
<div class="fw-semibold">{{ $latestCert->subject ?? 'Unknown' }}</div>
</div>
<div class="row">
<div class="col-6">
<div class="text-muted small mb-1">Issued Date</div>
<div class="fw-semibold">
@if($latestCert->issued_at)
{{ $latestCert->issued_at->format('M d, Y') }}
@else
—
@endif
</div>
</div>
<div class="col-6">
<div class="text-muted small mb-1">Expiry Date</div>
<div class="fw-semibold">
@if($latestCert->expires_at)
{{ $latestCert->expires_at->format('M d, Y') }}
@else
—
@endif
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card border-0 shadow-sm h-100">
<div class="card-header bg-white">
<h5 class="mb-0">
<i class="bi bi-calendar-check me-2"></i>
Validity Information
</h5>
</div>
<div class="card-body">
<div class="mb-3">
<div class="text-muted small mb-1">Days Remaining</div>
<div class="h3 mb-0">
@if($daysUntilExpiry !== null)
@if($daysUntilExpiry < 0)
<span class="text-danger">Expired {{ abs($daysUntilExpiry) }} days ago</span>
@else
<span class="text-{{ $daysUntilExpiry < 30 ? 'warning' : 'success' }}">{{ $daysUntilExpiry }} days</span>
@endif
@else
—
@endif
</div>
</div>
<div class="mb-3">
<div class="text-muted small mb-1">Validity Period</div>
<div class="fw-semibold">
@if($latestCert->issued_at && $latestCert->expires_at)
{{ $latestCert->issued_at->diffInDays($latestCert->expires_at) }} days
@else
—
@endif
</div>
</div>
<div>
<div class="text-muted small mb-1">Last Checked</div>
<div class="fw-semibold">
{{ $latestCert->created_at->diffForHumans() }}
</div>
</div>
</div>
</div>
</div>
</div>
@else
<div class="alert alert-info">
<i class="bi bi-info-circle me-2"></i>
No SSL certificate information available for this site yet.
</div>
@endif
<!-- Certificate History -->
<div class="card border-0 shadow-sm">
<div class="card-header bg-white">
<h5 class="mb-0">
<i class="bi bi-clock-history me-2"></i>
Certificate History
</h5>
</div>
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-hover mb-0">
<thead class="bg-light">
<tr>
<th>Checked At</th>
<th>Issuer</th>
<th>Issued Date</th>
<th>Expiry Date</th>
<th>Days Until Expiry</th>
<th>Status</th>
</tr>
</thead>
<tbody>
@forelse($sslCertificates as $cert)
@php
$daysUntilExpiry = $cert->expires_at ? now()->diffInDays($cert->expires_at, false) : null;
@endphp
<tr>
<td>{{ $cert->created_at->format('M d, Y H:i:s') }}</td>
<td>{{ Str::limit($cert->issuer ?? 'Unknown', 40) }}</td>
<td>
@if($cert->issued_at)
{{ $cert->issued_at->format('M d, Y') }}
@else
—
@endif
</td>
<td>
@if($cert->expires_at)
{{ $cert->expires_at->format('M d, Y') }}
@else
—
@endif
</td>
<td>
@if($daysUntilExpiry !== null)
@if($daysUntilExpiry < 0)
<span class="text-danger">{{ $daysUntilExpiry }} days</span>
@elseif($daysUntilExpiry < 30)
<span class="text-warning">{{ $daysUntilExpiry }} days</span>
@else
<span class="text-success">{{ $daysUntilExpiry }} days</span>
@endif
@else
—
@endif
</td>
<td>
@if($daysUntilExpiry === null)
<span class="badge bg-secondary">Unknown</span>
@elseif($daysUntilExpiry < 0)
<span class="badge bg-danger">
<i class="bi bi-shield-x"></i> Expired
</span>
@elseif($daysUntilExpiry < 30)
<span class="badge bg-warning text-dark">
<i class="bi bi-clock-history"></i> Expiring
</span>
@else
<span class="badge bg-success">
<i class="bi bi-shield-check"></i> Valid
</span>
@endif
</td>
</tr>
@empty
<tr>
<td colspan="6" class="text-center py-4 text-muted">
No SSL certificate checks recorded yet.
</td>
</tr>
@endforelse
</tbody>
</table>
</div>
</div>
@if($sslCertificates->hasPages())
<div class="card-footer bg-white">
{{ $sslCertificates->links() }}
</div>
@endif
</div>
</div>
@endsection