Strona główna
» Jak
»
Napraw błędy dowodu WOPI, sprawdzając klucze, odkrycia i adresy URL
Napraw błędy dowodu WOPI, sprawdzając klucze, odkrycia i adresy URL
Gdy host WOPI zgłasza „niepowodzenie weryfikacji dowodu” lub „Nieprawidłowy dowód WOPI”, najpierw sprawdź, który system zarejestrował odrzucenie. Jeśli host pamięci masowej odrzuca podpisane żądanie Collabora, sprawdź parę kluczy dowodu i odpowiedź wykrywania przed zmianą listy dozwolonych hosta WOPI lub wyłączeniem sprawdzania dowodów. W przypadku instalacji pakietów Collabora zazwyczaj generuje parę kluczy; w przypadku wdrożeń Docker, Kubernetes i wdrożeń z wieloma replikami, para musi być dostarczona i spójnie utrwalona.
Przed wymianą kluczyków zidentyfikuj wadliwą kontrolę
Walidacja dowodu WOPI wykorzystuje podpisane żądanie i klucz publiczny reklamowany przez klienta WOPI w jego metadanych wykrywania. Jest ona niezależna od listy zaufanych hostów WOPI Collabora, walidacji certyfikatu TLS i sprawdzania tokena dostępu hosta pamięci masowej. Regeneracja klucza może pomóc w przypadku braku klucza prywatnego lub niezgodności z reklamowanym kluczem publicznym, ale może również spowodować nową niezgodność, jeśli zmieni się tylko jedna replika lub host nadal ma buforowane dane wykrywania.
Komunikat potwierdzający nieważność po stronie hosta wskazuje najpierw na odkrycie klucza, konstrukcję podpisu lub moment żądania.
Dowody w dzienniku
Prawdopodobny obszar do sprawdzenia
Host pamięci masowej wyświetla komunikat „Nieprawidłowy dowód WOPI” podczas odbierania CheckFileInfo lub innego żądania WOPI
Klucz dowodowy Collabora, dane odkrywcze hosta, rekonstrukcja adresu URL lub znacznik czasu
Konfiguracja listy dozwolonych hostów WOPI/domeny, a nie klucz dowodowy
Token jest nieprawidłowy, wygasł lub dostęp jest zabroniony bez błędu dowodowego
Token dostępu wydany przez hosta, uprawnienia lub wygaśnięcie tokena
Sprawdź jedno nieudane żądanie w dziennikach Collabora i hosta magazynu; sam wskaźnik przeglądarki nie identyfikuje błędu klucza dowodowego.
Wybierz naprawę odpowiednią do wdrożenia
Zacznij od opcji najmniej uciążliwej. W przypadku instalacji opartej na pakietach, najpierw zweryfikuj istniejące pliki kluczy i logi usług; aktualna dokumentacja Collabora podaje, że instalacje pakietów RPM i Debian automatycznie generują parę kluczy WOPI proof. Jeśli te pliki są obecne i stabilne, ich rotacja zazwyczaj nie jest konieczna.
Collabora korzysta z prywatnego klucza dowodowego i publikuje odpowiadający mu klucz publiczny za pomocą funkcji odkrywania WOPI.
Wdrożenie
Zalecane działanie
Kompromis
Pojedynczy serwer zarządzany pakietami
Zachowaj wygenerowaną parę kluczy; napraw uprawnienia lub wygeneruj ponownie tylko w przypadku ich braku lub niezgodności
Minimalna zmiana, ale sprawdź wersję pakietu i skonfigurowane ścieżki
Pojedynczy kontener Docker
Wygeneruj parę raz i zamontuj ją trwale w kontenerze
Wymaga trwałego woluminu i prawidłowego dostępu do odczytu dla coolwsd
Kubernetes lub wiele replik
Zamontuj jedną współdzieloną parę kluczy tajnych/kluczy w każdej instancji Collabora
Spójne podpisy we wszystkich replikach; rotacja musi również aktualizować widok wykrywania hosta
Zmieniono adres URL hosta za serwerem proxy
Sprawdź schemat publiczny, hosta, ścieżkę i ciąg zapytania używany do walidacji podpisu
Bardziej skomplikowane niż rotacja kluczy, ale pozwala uniknąć niepotrzebnych zmian danych uwierzytelniających
W podręczniku Collabora 24.04 napisano, że publiczny obraz Dockera nie zawiera pary kluczy dowodowych; należy ją wygenerować i trwale zamontować. Oficjalny diagram Helm obsługuje klucze dowodowe Secrets. Nigdy nie generuj osobnej pary dla każdej repliki, ponieważ równoważenie obciążenia może powodować sporadyczne awarie.
Sprawdź i napraw bezpiecznie parę kluczy
Znajdź skonfigurowane ścieżki kluczy. Na hoście Collabora lub w kontenerze sprawdź ustawienia coolwsd.xmlścieżki klucza dowodowego i upewnij się, że zarówno klucz prywatny, jak i klucz publiczny są dostępne. Typowe lokalizacje znajdują się poniżej /etc/coolwsd/, ale układy pakietów i kontenerów mogą się różnić. Nigdy nie wklejaj klucza prywatnego do logów, zgłoszeń ani czatu.
Sprawdź, czy klucze są zgodne. W przypadku typowych domyślnych ścieżek porównaj odciski palców bez wyświetlania klucza prywatnego: sudo openssl pkey -in /etc/coolwsd/proof_key -pubout -outform DER | sha256sumi openssl pkey -pubin -in /etc/coolwsd/proof_key.pub -outform DER | sha256sum. Uzyskane skróty powinny być zgodne. Jeśli ścieżki się różnią, zastąp je ścieżkami skonfigurowanymi w rzeczywistości. Jeśli nie można odczytać klucza prywatnego, popraw jego właściciela i uprawnienia zgodnie z modelem bezpieczeństwa usługi; nie ustawiaj go jako powszechnie czytelnego.
Regeneruj tylko w razie potrzeby. Jeśli brakuje klucza prywatnego lub para nie pasuje, użyj sudo coolconfig generate-proof-keytego narzędzia w miejscu, w którym jest zainstalowane. W przypadku platformy Docker wygeneruj parę w odpowiedniej, trwałej lokalizacji, a następnie zamontuj oba pliki w miejscu, w którym Collabora ich oczekuje, i upewnij się, że proces coolwsd może odczytać klucz prywatny. Na platformie zarządzanej użyj obsługiwanego mechanizmu Secret zamiast ręcznie edytować działający pod.
Zadbaj o spójność wszystkich instancji. W przypadku replik wdróż tę samą parę kluczy do każdej instancji i uruchom ponownie lub wdróż Collaborę, aby odczytała pliki. Następnie odśwież lub ponownie pobierz odnajdywanie WOPI na hoście pamięci masowej, korzystając z obsługiwanego przez niego mechanizmu. Rotacja kluczy zmienia klucz publiczny; pamięć podręczna lub inna replika nadal obsługująca poprzedni klucz może podtrzymywać działanie systemu w przypadku awarii.
Repliki powinny współdzielić jedną trwałą parę kluczy-dowodów, aby każda instancja podpisywała żądania w spójny sposób.
Gdy klucz pasuje, ale walidacja dowodu nadal się nie powiedzie
Sprawdź synchronizację czasu w obu systemach. Żądania WOPI zawierają znacznik czasu; host może odrzucić stary znacznik czasu lub znacznik czasu nieaktualny. Upewnij się, że protokół NTP lub usługa czasu platformy działają prawidłowo i że serwery zgłaszają sensowne czasy UTC. Nie pomijaj kontroli znacznika czasu, aby obejść problem z zegarem.
Następnie sprawdź publiczny adres URL używany przez hosta do rekonstrukcji podpisanego żądania. Dowód jest powiązany z adresem URL żądania, w tym z odpowiednimi parametrami zapytania, a specyfikacja WOPI wymaga, aby reprezentacja adresu URL używana do walidacji była zgodna z podpisanym formularzem. Odwrotny serwer proxy, który kończy protokół HTTPS, może spowodować, że aplikacja zobaczy wewnętrzny adres URL HTTP, mimo że Collabora podpisała publiczny adres URL HTTPS. Skonfiguruj zaufane nagłówki serwera proxy i ustawienia zewnętrznego adresu URL aplikacji zgodnie z oficjalnymi wytycznymi hosta WOPI; nie przepisuj logiki dowodu ani nie usuwaj parametrów zapytania.
Jeśli dowód nie zadziała dopiero po rotacji klucza, odśwież proces wykrywania i sprawdź, czy wszystkie repliki Collabora ujawniają ten sam klucz publiczny. Jeśli nie powiodą się tylko żądania kierowane przez jeden serwer proxy lub jedną replikę, porównaj logi i konfigurację tej ścieżki, zamiast ponownie rotować klucz. Wyłączenie walidacji dowodu może osłabić kontrolę bezpieczeństwa i nie powinno być stosowane jako rozwiązanie w środowisku produkcyjnym.
Sprawdź naprawę
Pobierz punkt końcowy wykrywania Collabora z sieci hosta pamięci masowej i sprawdź, czy zwraca on bieżące metadane klucza dowodowego.
Otwórz dokument testowy i sprawdź, czy host pamięci masowej akceptuje żądanie CheckFileInfo i kolejne żądania dokumentów bez błędu uniemożliwiającego stwierdzenie nieważności.
Powtórz tę czynność dla każdej trasy proxy lub repliki, a następnie sprawdź, czy para kluczy pozostaje zamontowana po ponownym uruchomieniu kontenera lub wymianie zasobnika.
Potwierdź naprawę, otwierając dokument i sprawdzając, czy host akceptuje żądania WOPI.
Pomyślne otwarcie dokumentu weryfikuje tylko tę ścieżkę; powtórz sprawdzanie dla każdego hosta WOPI i trasy proxy, którą obsługujesz.