From: Fiona Ebner <f.ebner@proxmox.com>
To: Erik Fastermann <e.fastermann@proxmox.com>, pve-devel@lists.proxmox.com
Subject: Re: [RFC qemu-server 1/4] remote migrate: drop ineffective fingerprint auto-detection
Date: Wed, 29 Jul 2026 11:59:05 +0200 [thread overview]
Message-ID: <febf4f12-4c2a-44f9-83e8-dcd88bd06895@proxmox.com> (raw)
In-Reply-To: <c4f2aa78-1071-4513-beda-50cca05c7ffc@proxmox.com>
Forgot to CC Fabian, doing it now :)
Am 29.07.26 um 11:57 AM schrieb Fiona Ebner:
> Am 21.07.26 um 1:58 PM schrieb Erik Fastermann:
>> When no fingerprint was supplied, the code fetched the remote node
>> certificate and pinned its fingerprint for the migration tunnel. This
>> has no functional effect and is removed.
>>
>> That fetch only succeeds for remotes trusted via the CA store, which
>> is exactly the case where pinning is unnecessary: both the API client
>> and the websocket tunnel fall back to CA verification on their own.
>> For a self-signed remote the fetch itself fails verification, so no
>> fingerprint is ever obtained.
>
> The websocket tunnel checks the pinned fingerprint against the one that
> was supplied, so with the current code any weird scenario where the
> fingerprint queried from the certificates API endpoint does not match
> the one gotten later by the websocket tunnel connection is caught. If
> you remove the pinning, such scenarios won't be caught anymore. Not sure
> how important that is though.
>
> @Fabian what do you think?
>
>>
>> The only meaningful path, an explicitly supplied fingerprint (needed to
>> verify self-signed remotes), is unchanged.
>>
>> Signed-off-by: Erik Fastermann <e.fastermann@proxmox.com>
>> ---
>> src/PVE/API2/Qemu.pm | 16 ++--------------
>> 1 file changed, 2 insertions(+), 14 deletions(-)
>>
>> diff --git a/src/PVE/API2/Qemu.pm b/src/PVE/API2/Qemu.pm
>> index 28cbb9b0..68f1800c 100644
>> --- a/src/PVE/API2/Qemu.pm
>> +++ b/src/PVE/API2/Qemu.pm
>> @@ -5739,26 +5739,14 @@ __PACKAGE__->register_method({
>> apitoken => $remote->{apitoken},
>> };
>>
>> - my $fp;
>> - if ($fp = $remote->{fingerprint}) {
>> - $conn_args->{cached_fingerprints} = { uc($fp) => 1 };
>> + if ($remote->{fingerprint}) {
>> + $conn_args->{cached_fingerprints} = { uc($remote->{fingerprint}) => 1 };
>> }
>>
>> print "Establishing API connection with remote at '$remote->{host}'\n";
>>
>> my $api_client = PVE::APIClient::LWP->new(%$conn_args);
>>
>> - if (!defined($fp)) {
>> - my $cert_info = $api_client->get("/nodes/localhost/certificates/info");
>> - foreach my $cert (@$cert_info) {
>> - my $filename = $cert->{filename};
>> - next if $filename ne 'pveproxy-ssl.pem' && $filename ne 'pve-ssl.pem';
>> - $fp = $cert->{fingerprint} if !$fp || $filename eq 'pveproxy-ssl.pem';
>> - }
>> - $conn_args->{cached_fingerprints} = { uc($fp) => 1 }
>> - if defined($fp);
>> - }
>> -
>> my $repl_conf = PVE::ReplicationConfig->new();
>> my $is_replicated = $repl_conf->check_for_existing_jobs($source_vmid, 1);
>> die "cannot remote-migrate replicated VM\n" if $is_replicated;
>
>
>
>
>
next prev parent reply other threads:[~2026-07-29 9:59 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-21 11:58 [RFC qemu-server 0/4] remote migrate: extract preconditions and add check endpoint Erik Fastermann
2026-07-21 11:58 ` [RFC qemu-server 1/4] remote migrate: drop ineffective fingerprint auto-detection Erik Fastermann
2026-07-29 9:56 ` Fiona Ebner
2026-07-29 9:59 ` Fiona Ebner [this message]
2026-07-29 10:02 ` Fiona Ebner
2026-07-29 10:07 ` Fabian Grünbichler
2026-07-29 10:17 ` Fiona Ebner
2026-07-21 11:58 ` [RFC qemu-server 2/4] remote migrate: collect preconditions as structured findings Erik Fastermann
2026-07-29 9:56 ` Fiona Ebner
2026-07-31 13:42 ` Erik Fastermann
2026-07-21 11:58 ` [RFC qemu-server 3/4] qm: remote-migrate: call API endpoint directly Erik Fastermann
2026-07-21 11:58 ` [RFC qemu-server 4/4] remote migrate: add precondition check endpoint Erik Fastermann
2026-07-29 9:56 ` Fiona Ebner
2026-07-31 13:43 ` Erik Fastermann
2026-07-29 9:56 ` [RFC qemu-server 0/4] remote migrate: extract preconditions and add " Fiona Ebner
2026-07-31 13:42 ` Erik Fastermann
2026-07-31 14:44 ` Daniel Kral
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=febf4f12-4c2a-44f9-83e8-dcd88bd06895@proxmox.com \
--to=f.ebner@proxmox.com \
--cc=e.fastermann@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox