all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: "Max R. Carrara" <m.carrara@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH v1 squid-stable-8 ceph 2/2] drop patch that disables generating self-signed certs for dashboard
Date: Tue, 15 Jul 2025 11:32:37 +0200	[thread overview]
Message-ID: <20250715093237.650039-3-m.carrara@proxmox.com> (raw)
In-Reply-To: <20250715093237.650039-1-m.carrara@proxmox.com>

Due to the backported patches of the previous commit, this patch is
not necessary anymore.

Signed-off-by: Max R. Carrara <m.carrara@proxmox.com>
---
 ...move-ability-to-create-and-check-TLS.patch | 126 ------------------
 patches/series                                |   1 -
 2 files changed, 127 deletions(-)
 delete mode 100644 patches/0011-mgr-dashboard-remove-ability-to-create-and-check-TLS.patch

diff --git a/patches/0011-mgr-dashboard-remove-ability-to-create-and-check-TLS.patch b/patches/0011-mgr-dashboard-remove-ability-to-create-and-check-TLS.patch
deleted file mode 100644
index 3dce8e7a50..0000000000
--- a/patches/0011-mgr-dashboard-remove-ability-to-create-and-check-TLS.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Max Carrara <m.carrara@proxmox.com>
-Date: Fri, 26 Jan 2024 14:04:47 +0100
-Subject: [PATCH] mgr/dashboard: remove ability to create and check TLS
- key/cert pairs
-
-In order to avoid running into PyO3-related issues [0] with PyOpenSSL,
-the ability to create self-signed certs is disabled - the command
-`ceph dashboard create-self-signed-cert` is made to always return an
-error.
-
-The command's error message contains the manual steps the user may
-follow in order to set the certificate themselves, as well as a link
-to the Ceph Dashboard documentation regarding TLS support. [1]
-
-Furthermore, the check on start-up, that verifies that the configured
-key/cert pair actually match, is also removed. This means that users
-need to ensure themselves that the correct pair is supplied -
-otherwise their browser will complain.
-
-Other checks unrelated to the verification of keypairs are preserved,
-such as checking for the cert's and key's existence on the filesystem.
-
-`ssl.SSLError`s that occur during startup are re-raised with the
-additional information they contain as `ServerConfigException`s, as
-the dashboard handles these in its startup loop. Other exceptions are
-re-raised as well. Otherwise, the dashboard will irrecoverably crash,
-which also causes the `ceph dashboard` subcommand to stop working
-altogether, even if one of its sub-subcommands are unrelated to the
-dashboard itself.
-
-These changes allow the dashboard to launch with TLS enabled again.
-
-[0]: https://tracker.ceph.com/issues/63529
-[1]: https://docs.ceph.com/en/reef/mgr/dashboard/#ssl-tls-support
-
-Signed-off-by: Max Carrara <m.carrara@proxmox.com>
-Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
----
- src/pybind/mgr/dashboard/module.py | 58 ++++++++++++++++++++++--------
- 1 file changed, 43 insertions(+), 15 deletions(-)
-
-diff --git a/src/pybind/mgr/dashboard/module.py b/src/pybind/mgr/dashboard/module.py
-index 41160b698aa..8f57061abe2 100644
---- a/src/pybind/mgr/dashboard/module.py
-+++ b/src/pybind/mgr/dashboard/module.py
-@@ -23,8 +23,7 @@ if TYPE_CHECKING:
- 
- from mgr_module import CLIReadCommand, CLIWriteCommand, HandleCommandResult, \
-     MgrModule, MgrStandbyModule, NotifyType, Option, _get_localized_key
--from mgr_util import ServerConfigException, build_url, \
--    create_self_signed_cert, get_default_addr, verify_tls_files
-+from mgr_util import ServerConfigException, build_url, get_default_addr
- 
- from . import mgr
- from .controllers import Router, json_error_page
-@@ -169,11 +168,29 @@ class CherryPyConfig(object):
-             else:
-                 pkey_fname = self.get_localized_module_option('key_file')  # type: ignore
- 
--            verify_tls_files(cert_fname, pkey_fname)
-+            if not cert_fname or not pkey_fname:
-+                raise ServerConfigException('no certificate configured')
-+
-+            if not os.path.isfile(cert_fname):
-+                raise ServerConfigException(f"Certificate {cert_fname} does not exist")
-+
-+            if not os.path.isfile(pkey_fname):
-+                raise ServerConfigException(f"private key {pkey_fname} does not exist")
-+
-+            try:
-+                # Create custom SSL context to disable TLS 1.0 and 1.1.
-+                context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
-+                context.load_cert_chain(cert_fname, pkey_fname)
-+            except ssl.SSLError as e:
-+                raise ServerConfigException(
-+                    "Encountered unexpected error while creating SSL context"
-+                    f" - library: {e.library}, reason: {e.reason}"
-+                )
-+            except Exception as e:
-+                raise ServerConfigException(
-+                    f"Encountered unexpected error while creating SSL context: {e}"
-+                )
- 
--            # Create custom SSL context to disable TLS 1.0 and 1.1.
--            context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
--            context.load_cert_chain(cert_fname, pkey_fname)
-             if sys.version_info >= (3, 7):
-                 context.minimum_version = ssl.TLSVersion.TLSv1_3
-             else:
-@@ -464,15 +481,26 @@ class Module(MgrModule, CherryPyConfig):
- 
-     @CLIWriteCommand("dashboard create-self-signed-cert")
-     def set_mgr_created_self_signed_cert(self):
--        cert, pkey = create_self_signed_cert('IT', 'ceph-dashboard')
--        result = HandleCommandResult(*self.set_ssl_certificate(inbuf=cert))
--        if result.retval != 0:
--            return result
--
--        result = HandleCommandResult(*self.set_ssl_certificate_key(inbuf=pkey))
--        if result.retval != 0:
--            return result
--        return 0, 'Self-signed certificate created', ''
-+        from textwrap import dedent
-+
-+        err = """
-+        Creating self-signed certificates is currently not available.
-+        However, you can still set a key and certificate pair manually:
-+
-+        1. Generate a private key and self-signed certificate:
-+          # openssl req -newkey rsa:2048 -nodes -x509 \\
-+          -keyout /root/dashboard-key.pem -out /root/dashboard-crt.pem -sha512 \\
-+          -days 3650 -subj "/CN=IT/O=ceph-mgr-dashboard" -utf8
-+
-+        2. Set the corresponding config keys for the key/cert pair:
-+          # ceph config-key set mgr/dashboard/key -i /root/dashboard-key.pem
-+          # ceph config-key set mgr/dashboard/crt -i /root/dashboard-crt.pem
-+
-+        For more information on how to configure TLS for the dashboard, visit:
-+        https://docs.ceph.com/en/reef/mgr/dashboard/#ssl-tls-support
-+        """
-+
-+        return -errno.ENOTSUP, '', dedent(err).strip()
- 
-     @CLIWriteCommand("dashboard set-rgw-credentials")
-     def set_rgw_credentials(self):
diff --git a/patches/series b/patches/series
index ce1d9725d0..9adb8681e2 100644
--- a/patches/series
+++ b/patches/series
@@ -5,7 +5,6 @@
 0008-fix-service-ordering-avoid-Before-remote-fs-pre.targ.patch
 0009-fix-4759-run-ceph-crash-daemon-with-www-data-group-f.patch
 0010-fix-compatibility-with-CPUs-not-supporting-SSE-4.1-i.patch
-0011-mgr-dashboard-remove-ability-to-create-and-check-TLS.patch
 0012-ceph-osd-postinst-do-not-always-reload-all-sysctl-se.patch
 0013-debian-recursively-adjust-permissions-of-var-lib-cep.patch
 0014-ceph-crash-change-order-of-client-names.patch
-- 
2.39.5



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


  parent reply	other threads:[~2025-07-15  9:31 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-15  9:32 [pve-devel] [PATCH v1 squid-stable-8 ceph 0/2] Provide Workaround for PyO3 ImportError regarding Ceph Dashboard Max R. Carrara
2025-07-15  9:32 ` [pve-devel] [PATCH v1 squid-stable-8 ceph 1/2] backport workaround for PyO3 sub-interpreter ImportError Max R. Carrara
2025-07-15  9:32 ` Max R. Carrara [this message]
2025-07-15 12:55 ` [pve-devel] applied: [PATCH v1 squid-stable-8 ceph 0/2] Provide Workaround for PyO3 ImportError regarding Ceph Dashboard Thomas Lamprecht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250715093237.650039-3-m.carrara@proxmox.com \
    --to=m.carrara@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal