Correggi gli errori di verifica WOPI controllando chiavi, rilevamento e URL

Quando un host WOPI segnala "validazione della prova non riuscita" o "Prova WOPI non valida", è necessario innanzitutto verificare quale sistema ha registrato il rifiuto. Se l'host di archiviazione rifiuta la richiesta firmata di Collabora, è necessario controllare la coppia chiave-prova e la risposta di rilevamento prima di modificare le liste di autorizzazione degli host WOPI o disabilitare i controlli di prova. Per le installazioni di pacchetti, Collabora genera normalmente la coppia di chiavi; per Docker, Kubernetes e implementazioni multi-replica, la coppia deve essere fornita e resa persistente in modo coerente.

Identificare il controllo fallimentare prima di cambiare le chiavi

La convalida della prova WOPI utilizza una richiesta firmata e la chiave pubblica pubblicizzata dal client WOPI nei suoi metadati di rilevamento. È separata dall'elenco di host WOPI attendibili di Collabora, dalla convalida del certificato TLS e dal controllo del token di accesso dell'host di archiviazione. La rigenerazione della chiave può essere utile quando la chiave privata è mancante o non corrisponde alla chiave pubblica pubblicizzata, ma può creare una nuova discrepanza se cambia solo una replica o se un host ha ancora dati di rilevamento memorizzati nella cache.

Il log dell'host di archiviazione registra una richiesta CheckFileInfo rifiutata a causa di una prova WOPI non valida.
Un messaggio di invalidità lato host indica innanzitutto il momento della scoperta della chiave, della costruzione della firma o della richiesta.
Prove nel registroArea probabile da controllare
L'host di archiviazione segnala "Prova WOPI non valida" durante la ricezione di CheckFileInfo o di un'altra richiesta WOPI.La chiave di prova di Collabora, i dati di rilevamento dell'host, la ricostruzione dell'URL o il timestamp
Collabora segnala "Host WOPI non autorizzato" o "Nessun host WOPI accettabile".La configurazione della lista di autorizzazione/dominio dell'host WOPI, non la chiave di prova.
Token non valido, scaduto o accesso negato senza un codice di autenticazioneToken di accesso emesso dall'host, autorizzazioni o scadenza del token

Verifica la presenza di una richiesta non riuscita sia nei log di Collabora che in quelli dell'host di archiviazione; l'indicatore di caricamento del browser da solo non è sufficiente a identificare un errore nella chiave di verifica.

Scegli la riparazione più adatta all'implementazione

Iniziate con l'opzione meno invasiva. In caso di installazione basata su pacchetti, verificate innanzitutto i file chiave e i log di servizio esistenti; la documentazione attuale di Collabora afferma che le installazioni tramite pacchetti RPM e Debian generano automaticamente una coppia di chiavi di prova WOPI. Se questi file sono presenti e stabili, la loro rotazione di solito non è necessaria.

L'elenco dei file nel terminale mostra i file distinti proof_key e proof_key.pub.
Collabora utilizza una chiave di prova privata e pubblica la corrispondente chiave pubblica tramite il sistema di discovery WOPI.
DistribuzioneAzione consigliataCompromesso
Server a pacchetto singolo gestitoConserva la coppia di chiavi generata; ripara le autorizzazioni o rigenerale solo se mancanti o non corrispondenti.Modifiche minime, ma verifica la versione del pacchetto e i percorsi configurati.
Contenitore Docker singoloGenera una coppia una sola volta e montala in modo permanente nel contenitore.Richiede un volume persistente e l'accesso in lettura corretto per coolwsd
Kubernetes o repliche multipleMonta una coppia di chiavi/segreti condivisi in ogni istanza di CollaboraFirme coerenti tra le repliche; la rotazione deve aggiornare anche la vista di rilevamento dell'host.
L'URL dell'host è stato modificato dietro un proxy.Verifica lo schema pubblico, l'host, il percorso e la stringa di query utilizzati per la convalida della firma.Più complesso della semplice rotazione delle chiavi, ma evita inutili modifiche delle credenziali.

Il manuale di Collabora 24.04 afferma che l'immagine Docker pubblica non include una coppia di chiavi di prova; è necessario generarne una e montarla in modo permanente. Il chart Helm ufficiale supporta i Secret con chiave di prova. Non generare mai una coppia separata per ogni replica, altrimenti il ​​bilanciamento del carico potrebbe causare guasti intermittenti.

Controllare e riparare la coppia di chiavi in ​​sicurezza

  1. Individua i percorsi delle chiavi configurati. Sull'host Collabora o all'interno del container, controlla le coolwsd.xmlimpostazioni del percorso della chiave di prova e verifica che siano disponibili sia la chiave privata che quella pubblica. I percorsi più comuni si trovano in /etc/coolwsd/, ma la struttura dei pacchetti e dei container può variare. Non incollare mai la chiave privata nei log, nei ticket o nelle chat.
  2. Verifica che le chiavi corrispondano. Per i percorsi predefiniti comuni, confronta le impronte digitali senza visualizzare la chiave privata: sudo openssl pkey -in /etc/coolwsd/proof_key -pubout -outform DER | sha256sume openssl pkey -pubin -in /etc/coolwsd/proof_key.pub -outform DER | sha256sum. Gli hash risultanti dovrebbero corrispondere. Se i percorsi differiscono, sostituiscili con i percorsi effettivamente configurati. Se la chiave privata non può essere letta, correggine la proprietà e le autorizzazioni in base al modello di sicurezza del servizio; non renderla leggibile da tutti.
  3. Rigenera solo quando necessario. Se la chiave privata è mancante o la coppia non corrisponde, utilizza sudo coolconfig generate-proof-keyl'utility in cui è installata. Per Docker, genera la coppia in una posizione persistente appropriata, quindi monta entrambi i file nella posizione prevista da Collabora e assicurati che il processo coolwsd possa leggere la chiave privata. Su una piattaforma gestita, utilizza il meccanismo Secret supportato anziché modificare manualmente un pod in esecuzione.
  4. Assicurati che tutte le istanze siano coerenti. Per le repliche, distribuisci la stessa coppia di chiavi a ciascuna istanza e riavvia o distribuisci Collabora in modo che legga i file. Quindi aggiorna o recupera nuovamente il rilevamento WOPI sull'host di archiviazione utilizzando il meccanismo supportato da tale host. Una rotazione delle chiavi modifica la chiave pubblica; le cache o un'altra replica che continua a servire la chiave precedente possono mantenere attivi i dati in caso di errore.
Il pannello dei volumi di Kubernetes mostra la stessa chiave Secret WOPI montata in due pod Collabora in esecuzione.
Le repliche dovrebbero condividere una coppia di chiavi di prova persistente in modo che ogni istanza firmi le richieste in modo coerente.

Quando la chiave corrisponde ma la convalida della prova fallisce comunque

Verifica la sincronizzazione dell'ora su entrambi i sistemi. Le richieste di prova WOPI includono un timestamp; un host può rifiutare un timestamp vecchio o fuori dall'intervallo valido. Assicurati che il servizio NTP o il servizio orario della piattaforma funzioni correttamente e che i server segnalino orari UTC validi. Non allentare i controlli del timestamp per aggirare un problema di orologio.

Successivamente, esamina l'URL pubblico utilizzato dall'host per ricostruire la richiesta firmata. La prova è legata all'URL della richiesta, inclusi i parametri di query pertinenti, e la specifica WOPI richiede che la rappresentazione dell'URL utilizzata per la convalida corrisponda alla forma firmata. Un proxy inverso che termina HTTPS può far sì che l'applicazione visualizzi un URL HTTP interno anche se Collabora ha firmato l'URL HTTPS pubblico. Configura le intestazioni del proxy attendibile e le impostazioni dell'URL esterno dell'applicazione secondo le linee guida ufficiali dell'host WOPI; non riscrivere la logica di prova né rimuovere i parametri di query.

Se la verifica fallisce solo dopo una rotazione della chiave, aggiorna il rilevamento e verifica che tutte le repliche di Collabora espongano la stessa chiave pubblica. Se falliscono solo le richieste instradate tramite un proxy o una replica, confronta i log e la configurazione di quel percorso anziché ruotare nuovamente la chiave. Disabilitare la convalida della verifica può indebolire un controllo di sicurezza e non dovrebbe essere utilizzato come soluzione in produzione.

Verifica la riparazione

  1. Recupera l'endpoint di rilevamento di Collabora dalla rete dell'host di archiviazione e verifica che restituisca i metadati della chiave di prova correnti.
  2. Apri un documento di prova e verifica che l'host di archiviazione accetti la richiesta CheckFileInfo e le successive richieste di documenti senza un errore di invalidità.
  3. Ripeti la procedura per ogni percorso proxy o replica, quindi verifica che la coppia di chiavi rimanga montata dopo il riavvio del container o la sostituzione del pod.
Un browser mostra un documento aperto in Collabora con richieste di CheckFileInfo e di contenuto andate a buon fine.
Conferma la riparazione aprendo un documento e verificando che l'host accetti le sue richieste WOPI.

L'apertura corretta del documento verifica solo quel percorso; ripetere il controllo per ogni host WOPI e percorso proxy gestito.

Riferimenti ufficiali

Lascia un commento

Correggi gli errori di verifica WOPI controllando chiavi, rilevamento e URL

Correggi gli errori di verifica WOPI controllando chiavi, rilevamento e URL

Traccia gli errori di WOPI di Collabora dovuti a chiavi non corrispondenti, dati di rilevamento obsoleti, deriva dell'orologio o modifiche all'URL del proxy, senza indebolire la convalida.

Correggere un menu a tendina delle dimensioni del carattere di Collabora Online visualizzato in modo errato

Correggere un menu a tendina delle dimensioni del carattere di Collabora Online visualizzato in modo errato

Reimposta lo zoom del browser, testa una sessione pulita e identifica quando un menu di dimensioni non corretto richiede un aggiornamento del server Collabora.

Collega Nextcloud a un container Collabora CODE self-hosted

Collega Nextcloud a un container Collabora CODE self-hosted

Implementa Collabora CODE con Docker, connettilo in modo sicuro a Nextcloud Office e verifica la modifica dei documenti con pratici controlli WOPI e proxy.

Traccia gli errori di connessione di Collabora con i log di coolwsd

Traccia gli errori di connessione di Collabora con i log di coolwsd

Attivare temporaneamente la modalità di debug di coolwsd, acquisire un'apertura non riuscita e utilizzare la sequenza di log per separare i problemi relativi a WebSocket, WOPI, proxy e container.

Imposta una password sicura per la console di amministrazione di Collabora.

Imposta una password sicura per la console di amministrazione di Collabora.

Configura l'accesso amministrativo a Collabora Online per Docker o Linux, riavvia il servizio appropriato e verifica la nuova password senza esporla.

Diagnostica l'elevato utilizzo della CPU da coolwsd o loolwsd di Collabora.

Diagnostica l'elevato utilizzo della CPU da coolwsd o loolwsd di Collabora.

Prima di modificare le impostazioni di Collabora o riavviare il servizio, verifica se il carico della CPU deriva da documenti attivi, processi worker inattivi o capacità del server.

Aumenta il limite di memoria del contenitore CODE senza fare supposizioni

Aumenta il limite di memoria del contenitore CODE senza fare supposizioni

Verifica se Docker sta imponendo un limite a Collabora CODE, aumenta in modo sicuro il limite di memoria di Compose e conferma che il container in esecuzione abbia ricevuto il nuovo limite.

Personalizza le barre degli strumenti di Collabora CODE senza modificare il codice sorgente

Personalizza le barre degli strumenti di Collabora CODE senza modificare il codice sorgente

Semplifica Collabora CODE con la modalità Compatta o a schede e i controlli WOPI PostMessage per nascondere in modo sicuro pulsanti, comandi e schede selezionati.

Esegui Collabora CODE dietro Nginx con terminazione TLS

Esegui Collabora CODE dietro Nginx con terminazione TLS

Configura Nginx per la gestione di HTTPS in un container Collabora CODE, inoltra correttamente i WebSocket e verifica l'endpoint pubblico senza esporre la porta 9980.

Mantieni il testo visibile quando si apre la tastiera Collabora Mobile.

Mantieni il testo visibile quando si apre la tastiera Collabora Mobile.

Risolvere i problemi relativi alla tastiera del browser mobile che copre il testo in Collabora Online, con soluzioni rapide e controlli separati per browser, WebView incorporate e pagine host.