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
3 changed files with 24 additions and 15 deletions

View File

@@ -158,10 +158,9 @@ class General extends Component
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 @@ class General extends Component
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 @@ class General extends Component
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 @@ class General extends Component
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 @@ class General extends Component
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 @@ class General extends Component
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 @@ class General extends Component
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 @@ class General extends Component
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 @@ class General extends Component
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.');