From 891877afb627adc25d67040323920702c9c61cb6 Mon Sep 17 00:00:00 2001 From: milad nazari Date: Wed, 11 Dec 2024 11:51:58 +0330 Subject: [PATCH] fix ssl key-type certificate --- backend/internal/certificate.js | 3 +- backend/internal/proxy-host.js | 1 + .../20241211081223_ssl_key_type_in_proxy.js | 39 +++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 backend/migrations/20241211081223_ssl_key_type_in_proxy.js diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js index c4bf379a..164de7fb 100644 --- a/backend/internal/certificate.js +++ b/backend/internal/certificate.js @@ -570,6 +570,7 @@ const internalCertificate = { return internalCertificate.create(access, { provider: 'letsencrypt', domain_names: data.domain_names, + ssl_key_type: data.ssl_key_type, meta: data.meta }); }, @@ -1036,7 +1037,7 @@ const internalCertificate = { */ revokeLetsEncryptSsl: (certificate, throw_errors) => { logger.info('Revoking Let\'sEncrypt certificates for Cert #' + certificate.id + ': ' + certificate.domain_names.join(', ')); - + const mainCmd = certbotCommand + ' revoke ' + `--config '${letsencryptConfig}' ` + `--key-type '${certificate.ssl_key_type}' ` + diff --git a/backend/internal/proxy-host.js b/backend/internal/proxy-host.js index 61ac8b8c..fe251972 100644 --- a/backend/internal/proxy-host.js +++ b/backend/internal/proxy-host.js @@ -152,6 +152,7 @@ const internalProxyHost = { if (create_certificate) { return internalCertificate.createQuickCertificate(access, { domain_names: data.domain_names || row.domain_names, + ssl_key_type: data.ssl_key_type || row.ssl_key_type, meta: _.assign({}, row.meta, data.meta) }) .then((cert) => { diff --git a/backend/migrations/20241211081223_ssl_key_type_in_proxy.js b/backend/migrations/20241211081223_ssl_key_type_in_proxy.js new file mode 100644 index 00000000..a7e72b92 --- /dev/null +++ b/backend/migrations/20241211081223_ssl_key_type_in_proxy.js @@ -0,0 +1,39 @@ +const migrate_name = 'identifier_for_migrate'; +const logger = require('../logger').migrate; + +/** + * Migrate + * + * @see http://knexjs.org/#Schema + * + * @param {Object} knex + * @param {Promise} Promise + * @returns {Promise} + */ +exports.up = function (knex) { + + logger.info(`[${migrate_name}] Migrating Up...`); + + return knex.schema.alterTable('certificate', (table) => { + table.enum('ssl_key_type', ['ecdsa', 'rsa']).defaultTo('ecdsa').notNullable(); + }).then(() => { + logger.info(`[${migrate_name}] Column 'ssl_key_type' added to table 'proxy_host'`); + }); +}; + +/** + * Undo Migrate + * + * @param {Object} knex + * @param {Promise} Promise + * @returns {Promise} + */ +exports.down = function (knex) { + logger.info(`[${migrate_name}] Migrating Down...`); + + return knex.schema.alterTable('certificate', (table) => { + table.dropColumn('ssl_key_type'); + }).then(() => { + logger.info(`[${migrate_name}] Column 'ssl_key_type' removed from table 'proxy_host'`); + }); +};