public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
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;
> 
> 
> 
> 
> 





  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
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal