fix(ssl): regenerating certs for a specific DB

- fix: add mount path to make file mounts work correctly
- fix: get CA cert of the server not some random cert
This commit is contained in:
peaklabs-dev 2025-02-05 21:22:54 +01:00
parent ba24630c28
commit 951a454cbc
No known key found for this signature in database
3 changed files with 24 additions and 15 deletions

View file

@ -158,10 +158,9 @@ public function instantSaveSSL()
public function regenerateSslCertificate()
{
try {
$server = $this->database->destination->server;
$existingCert = SslCertificate::where('resource_type', $this->database->getMorphClass())
->where('resource_id', $this->database->id)
->where('server_id', $this->server->id)
->first();
if (! $existingCert) {
@ -170,7 +169,10 @@ public function regenerateSslCertificate()
return;
}
$caCert = SslCertificate::where('server_id', $server->id)->firstOrFail();
$caCertificate = SslCertificate::where('server_id', $this->server->id)
->where('resource_type', null)
->where('resource_id', null)
->first();
SslHelper::generateSslCertificate(
commonName: $existingCert->common_name,
@ -178,9 +180,10 @@ public function regenerateSslCertificate()
resourceType: $existingCert->resource_type,
resourceId: $existingCert->resource_id,
serverId: $existingCert->server_id,
caCert: $caCert->ssl_certificate,
caKey: $caCert->ssl_private_key,
caCert: $caCertificate->ssl_certificate,
caKey: $caCertificate->ssl_private_key,
configurationDir: $existingCert->configuration_dir,
mountPath: '/var/lib/mysql/certs',
);
$this->dispatch('success', 'SSL certificates have been regenerated. Please restart the database for changes to take effect.');

View file

@ -158,10 +158,9 @@ public function instantSaveSSL()
public function regenerateSslCertificate()
{
try {
$server = $this->database->destination->server;
$existingCert = SslCertificate::where('resource_type', $this->database->getMorphClass())
->where('resource_id', $this->database->id)
->where('server_id', $this->server->id)
->first();
if (! $existingCert) {
@ -170,7 +169,10 @@ public function regenerateSslCertificate()
return;
}
$caCert = SslCertificate::where('server_id', $server->id)->firstOrFail();
$caCertificate = SslCertificate::where('server_id', $this->server->id)
->where('resource_type', null)
->where('resource_id', null)
->first();
SslHelper::generateSslCertificate(
commonName: $existingCert->common_name,
@ -178,9 +180,10 @@ public function regenerateSslCertificate()
resourceType: $existingCert->resource_type,
resourceId: $existingCert->resource_id,
serverId: $existingCert->server_id,
caCert: $caCert->ssl_certificate,
caKey: $caCert->ssl_private_key,
caCert: $caCertificate->ssl_certificate,
caKey: $caCertificate->ssl_private_key,
configurationDir: $existingCert->configuration_dir,
mountPath: '/var/lib/mysql/certs',
);
$this->dispatch('success', 'SSL certificates have been regenerated. Please restart the database for changes to take effect.');

View file

@ -122,10 +122,9 @@ public function instantSaveSSL()
public function regenerateSslCertificate()
{
try {
$server = $this->database->destination->server;
$existingCert = SslCertificate::where('resource_type', $this->database->getMorphClass())
->where('resource_id', $this->database->id)
->where('server_id', $this->server->id)
->first();
if (! $existingCert) {
@ -134,7 +133,10 @@ public function regenerateSslCertificate()
return;
}
$caCert = SslCertificate::where('server_id', $server->id)->firstOrFail();
$caCertificate = SslCertificate::where('server_id', $this->server->id)
->where('resource_type', null)
->where('resource_id', null)
->first();
SslHelper::generateSslCertificate(
commonName: $existingCert->common_name,
@ -142,9 +144,10 @@ public function regenerateSslCertificate()
resourceType: $existingCert->resource_type,
resourceId: $existingCert->resource_id,
serverId: $existingCert->server_id,
caCert: $caCert->ssl_certificate,
caKey: $caCert->ssl_private_key,
caCert: $caCertificate->ssl_certificate,
caKey: $caCertificate->ssl_private_key,
configurationDir: $existingCert->configuration_dir,
mountPath: '/var/lib/postgresql/certs',
);
$this->dispatch('success', 'SSL certificates have been regenerated. Please restart the database for changes to take effect.');