From: Fiona Ebner <f.ebner@proxmox.com>
To: Thomas Lamprecht <t.lamprecht@proxmox.com>,
Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [PATCH manager v2 8/9] ui: qemu: hardware: efi: allow enrolling Microsoft+Windows UEFI CA 2023
Date: Wed, 21 Jan 2026 14:08:31 +0100 [thread overview]
Message-ID: <78bfb5b9-f00c-4641-a971-a6c1d8dea4c4@proxmox.com> (raw)
In-Reply-To: <777b5621-4cf6-44e5-90ee-6882cfb3f290@proxmox.com>
Am 20.01.26 um 6:49 PM schrieb Thomas Lamprecht:
> Am 13.01.26 um 11:54 schrieb Fiona Ebner:
>> diff --git a/www/manager6/qemu/HardwareView.js b/www/manager6/qemu/HardwareView.js
>> index cf5e2a0f..69216932 100644
>> --- a/www/manager6/qemu/HardwareView.js
>> +++ b/www/manager6/qemu/HardwareView.js
>> @@ -442,6 +442,67 @@ Ext.define('PVE.qemu.HardwareView', {
>> handler: run_editor,
>> });
>>
>> + let runEfiEnroll = function () {
>> + let rec = sm.getSelection()[0];
>> + if (!rec) {
>> + return;
>> + }
>> +
>> + let efidisk = PVE.Parser.parsePropertyString(rec.data.value, 'file');
>> + efidisk['ms-cert'] = '2023';
>> +
>> + let params = {};
>> + params[rec.data.key] = PVE.Parser.printPropertyString(efidisk);
>> + Proxmox.Utils.API2Request({
>> + url: `/api2/extjs/${baseurl}`,
>> + waitMsgTarget: me,
>> + method: 'POST',
>> + params: params,
>> + callback: () => me.reload(),
>> + failure: (response) => Ext.Msg.alert('Error', response.htmlStatus),
>> + success: function (response, options) {
>> + if (response.result.data !== null) {
>> + Ext.create('Proxmox.window.TaskProgress', {
>> + autoShow: true,
>> + upid: response.result.data,
>> + listeners: {
>> + destroy: () => me.reload(),
>> + },
>> + });
>> + }
>> + },
>> + });
>> + };
>> +
>> + let efiEnrollButton = new Proxmox.button.Button({
>> + text: gettext('Enroll updated certificates'),
>> + selModel: sm,
>> + disabled: true,
>> + hidden: true,
>> + handler: runEfiEnroll,
>> + confirmMsg:
>> + gettext(
>> + 'Enroll the Microsoft and Windows UEFI 2023 CA required for secure boot update.'
>> + ) +
>> + '<br>' +
>
> would probably add an extra line break here to better distinguish the description of what's
> happening here with the note below.
Ack.
>> + gettext(
>> + 'If the VM uses BitLocker, run the following command inside Windows Powershell:',
>> + ) +
>> + '<br><code>manage-bde -protectors -disable <drive></code><br>' +
>> + Ext.String.format(
>> + // TRANSLATORS: for a shell command: "placeholder could be 'concrete value'"
>> + gettext("For example, {0} could be '{1}'."),
>> + '<code><drive></code>',
>> + '<code>C:</code>',
>> + ) +
>> + '<br>' +
>> + gettext('This is required for each drive with BitLocker before proceeding!') +
>> + '<br>' +
>> + gettext(
>> + 'Otherwise, you will be prompted for the BitLocker recovery key on the next boot!',
>> + ),
>> + });
>> +
>> let move_menuitem = new Ext.menu.Item({
>> text: gettext('Move Storage'),
>> tooltip: gettext('Move disk to another storage'),
>> @@ -616,6 +677,8 @@ Ext.define('PVE.qemu.HardwareView', {
>> let selection_model = me.getSelectionModel();
>> let rec = selection_model.getSelection()[0];
>>
>> + let isWin10or11 = false;
>> +
>> counts = {}; // en/disable hardwarebuttons
>> let hasCloudInit = false;
>> me.rstore.getData().items.forEach(function ({ id, data }) {
>> @@ -629,6 +692,10 @@ Ext.define('PVE.qemu.HardwareView', {
>> let type = match[1];
>> counts[type] = (counts[type] || 0) + 1;
>> }
>> +
>> + if (id === 'ostype' && (data.value === 'win10' || data.value === 'win11')) {
>> + isWin10or11 = true;
>
> Hmm, this is not complete though? What if my Linux distro uses a MS blessed
> signing key for the bootloader and switch to the 2023 one?
Ah, very good point! Right, they do depend on the Microsoft KEK too..
> Maybe always show it if windows or pre-enrolled-keys is true?
Ack. The backend currently also checks for OS type being Win10/11, I'll
adapt it there too.
>> @@ -822,6 +903,7 @@ Ext.define('PVE.qemu.HardwareView', {
>> },
>> remove_btn,
>> edit_btn,
>> + efiEnrollButton,
>
> Slightly torn here on button placement. Semantically it would fit better in the
> disk-action sub-menu, and while it's a bit less subtle there, it's IMO not that
> much more noticeable as is.
> If you strongly disagree with me, which I'm naturally fine with, I'd vouch for at
> least move it to the end so that the other buttons do not "jump" location when
> selection changes from another HW property to an efidisk one.
Okay, I'll move it to the disk-action sub menu. Will also add a docs patch.
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
next prev parent reply other threads:[~2026-01-21 13:08 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-13 10:54 [pve-devel] [PATCH-SERIES qemu-server/manager v2 0/9] improve Microsoft+Windows UEFI CA 2023 enrollment Fiona Ebner
2026-01-13 10:54 ` [pve-devel] [PATCH qemu-server v2 1/9] qm enroll-efi-keys: do not remove EFI disk when config was modified during operation Fiona Ebner
2026-01-13 10:54 ` [pve-devel] [PATCH qemu-server v2 2/9] ovmf: enroll ms 2023 cert: pass along parsed drive Fiona Ebner
2026-01-13 10:54 ` [pve-devel] [PATCH qemu-server v2 3/9] config: apply pending: code style: avoid some line bloat Fiona Ebner
2026-01-13 10:54 ` [pve-devel] [PATCH qemu-server v2 4/9] config: apply pending: efi: enroll Microsoft UEFI CA 2023 when setting ms-cert=2023 option Fiona Ebner
2026-01-13 10:54 ` [pve-devel] [PATCH qemu-server v2 5/9] ovmf: also enroll the Windows UEFI CA 2023 key Fiona Ebner
2026-01-13 10:54 ` [pve-devel] [PATCH qemu-server v2 6/9] efi disk: distinguish between having only MS 2023 cert and also having Windows 2023 cert Fiona Ebner
2026-01-13 10:54 ` [pve-devel] [PATCH manager v2 7/9] ui: qemu: hd efi: fix typo in warning Fiona Ebner
2026-01-20 17:50 ` [pve-devel] applied: " Thomas Lamprecht
2026-01-13 10:54 ` [pve-devel] [PATCH manager v2 8/9] ui: qemu: hardware: efi: allow enrolling Microsoft+Windows UEFI CA 2023 Fiona Ebner
2026-01-20 17:50 ` Thomas Lamprecht
2026-01-21 13:08 ` Fiona Ebner [this message]
2026-01-13 10:54 ` [pve-devel] [PATCH manager v2 9/9] ui: qemu: hardware: efi: use 2023w value when enrolling certs Fiona Ebner
2026-01-20 17:42 ` Thomas Lamprecht
2026-01-21 13:08 ` Fiona Ebner
2026-01-20 11:34 ` [pve-devel] [PATCH-SERIES qemu-server/manager v2 0/9] improve Microsoft+Windows UEFI CA 2023 enrollment Fiona Ebner
2026-01-20 17:51 ` [pve-devel] partially-applied-series: " 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=78bfb5b9-f00c-4641-a971-a6c1d8dea4c4@proxmox.com \
--to=f.ebner@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
--cc=t.lamprecht@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox