feat: implement Family SSL grouping and refined issuer tracking

This commit is contained in:
dyzulk
2026-01-07 10:00:57 +07:00
parent c47e91db81
commit face81d5cb
3 changed files with 7 additions and 0 deletions

View File

@@ -26,6 +26,7 @@ class CaCertificate extends Model
'is_latest',
'issuer_name',
'issuer_serial',
'family_id',
'cert_path',
'der_path',
'bat_path',

View File

@@ -418,6 +418,7 @@ class OpenSslService
'valid_to' => date('Y-m-d H:i:s', $newInfo['validTo_time_t']),
'issuer_name' => $cert->ca_type === 'root' ? $cert->common_name : ($root ? $root->common_name : 'Unknown Root'),
'issuer_serial' => $cert->ca_type === 'root' ? $newSerialHex : ($root ? $root->serial_number : null),
'family_id' => $cert->ca_type === 'root' ? (string) \Illuminate\Support\Str::uuid() : ($root ? $root->family_id : $cert->family_id),
];
} finally {
@@ -477,6 +478,7 @@ class OpenSslService
'valid_to' => $newData['valid_to'],
'issuer_name' => $newData['issuer_name'],
'issuer_serial' => $newData['issuer_serial'],
'family_id' => $newData['family_id'],
'is_latest' => true,
]);

View File

@@ -33,6 +33,7 @@ return new class extends Migration
$table->string('organization')->nullable();
$table->string('issuer_name')->nullable();
$table->string('issuer_serial')->nullable();
$table->string('family_id')->nullable();
$table->dateTime('valid_from')->nullable();
$table->dateTime('valid_to')->nullable();
@@ -70,6 +71,9 @@ return new class extends Migration
if (!Schema::connection('mysql_ca')->hasColumn('ca_certificates', 'issuer_serial')) {
$table->string('issuer_serial')->nullable()->after('issuer_name');
}
if (!Schema::connection('mysql_ca')->hasColumn('ca_certificates', 'family_id')) {
$table->string('family_id')->nullable()->after('issuer_serial');
}
});
}
}