Home
» Come fare
»
Correggi gli errori di verifica WOPI controllando chiavi, rilevamento e URL
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.
Un messaggio di invalidità lato host indica innanzitutto il momento della scoperta della chiave, della costruzione della firma o della richiesta.
Prove nel registro
Area 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 autenticazione
Token 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.
Collabora utilizza una chiave di prova privata e pubblica la corrispondente chiave pubblica tramite il sistema di discovery WOPI.
Distribuzione
Azione consigliata
Compromesso
Server a pacchetto singolo gestito
Conserva 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 singolo
Genera 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 multiple
Monta una coppia di chiavi/segreti condivisi in ogni istanza di Collabora
Firme 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
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.
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.
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.
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.
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
Recupera l'endpoint di rilevamento di Collabora dalla rete dell'host di archiviazione e verifica che restituisca i metadati della chiave di prova correnti.
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à.
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.
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.