From fba95c372980f73faa3b8dc0e36fbbd7018c0123 Mon Sep 17 00:00:00 2001 From: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com> Date: Mon, 3 Feb 2025 22:35:00 +0100 Subject: [PATCH] fix(migration): store subjectAlternativeNames as a json array in the db --- app/Helpers/SslHelper.php | 2 +- app/Models/SslCertificate.php | 1 + .../2025_01_27_153741_create_ssl_certificates_table.php | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/Helpers/SslHelper.php b/app/Helpers/SslHelper.php index 51ac3bffa..43df8114e 100644 --- a/app/Helpers/SslHelper.php +++ b/app/Helpers/SslHelper.php @@ -107,7 +107,7 @@ class SslHelper 'valid_until' => CarbonImmutable::now()->addDays($validityDays), 'is_ca_certificate' => $isCaCertificate, 'common_name' => $commonName, - 'subject_alternative_names' => implode(', ', array_merge(["DNS:$commonName"], $subjectAlternativeNames)), + 'subject_alternative_names' => $subjectAlternativeNames, ]); } catch (\Throwable $e) { throw new \RuntimeException('SSL Certificate generation failed: '.$e->getMessage(), 0, $e); diff --git a/app/Models/SslCertificate.php b/app/Models/SslCertificate.php index f1818f970..54a997dfb 100644 --- a/app/Models/SslCertificate.php +++ b/app/Models/SslCertificate.php @@ -21,6 +21,7 @@ class SslCertificate extends Model protected $casts = [ 'ssl_certificate' => 'encrypted', 'ssl_private_key' => 'encrypted', + 'subject_alternative_names' => 'array', 'valid_until' => 'datetime', ]; diff --git a/database/migrations/2025_01_27_153741_create_ssl_certificates_table.php b/database/migrations/2025_01_27_153741_create_ssl_certificates_table.php index b19493b96..023482055 100644 --- a/database/migrations/2025_01_27_153741_create_ssl_certificates_table.php +++ b/database/migrations/2025_01_27_153741_create_ssl_certificates_table.php @@ -16,7 +16,7 @@ return new class extends Migration $table->unsignedBigInteger('resource_id')->nullable(); $table->unsignedBigInteger('server_id'); $table->text('common_name'); - $table->text('subject_alternative_names')->nullable(); + $table->json('subject_alternative_names')->nullable(); $table->timestamp('valid_until'); $table->boolean('is_ca_certificate')->default(false); $table->timestamps();