Według podanego wyżej testu SSL Labs Java też sobie radzi, więc wciąż nie jest przekonany… Niestety, nie mogę sobie przypomnieć, na czym problem polegał poprzednim razem, mam wrażenie, że coś poprawiali w swojej konfiguracji wskutek moich starań, ale może zmyślam
Z tego co sprawdziłem/zrozumiałem certyfikat dostarczany przez serwer Geoportalu nie zawiera wszystkich nadrzędnych certyfikatów. Dokładnie to są 2 “wyższe”, brakuje tego środkowego (przeglądarka potrafi go sobie dociągnąć).
Można go pobrać ze strony Certum. To będzie:
The Commercial SSL (or its MultiDomain/Wildcard options)
Certum Domain Validation CA SHA2
Serial No:26ddd22b46c9c44d5a694d39807e72ad
Valid from:2014-09-11 12:00:00 GMT
Expiry date:2027-06-09 10:46:39 GMT
Można też skorzystać z przeglądarki - i Firefox i Chrome mają taką funkcję.
Po dodaniu klucza ręcznie do keystore powinno być ok - sprawdzałem to curlem:
$ curl https://mapy.geoportal.gov.pl
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
Teraz jeszcze niech ktoś mi powie jak dodać certyfikat z pliku do zaufanych w Javie, bo sam nie umiem.
To chyba nie jest błąd w Josm, tylko “lack of support” w jakiejś libce.
Potwierdzam, dodanie do zaufanych certa Certum Domain Validation CA SHA2 rozwiązuje problem.
Na Ubuntu Java wykorzystuje systemowy truststore. Na Windowsie… bodaj gdzieś w instalacji Javy jest truststore, na którym można operować narzędziem keytool.
Odpalać JOSM z podlinkowanym tym keystore (w tym przykładzie ustawiłem hasło “123456”): $ java -Djavax.net.ssl.trustStore=/tmp/keystore -Djavax.net.ssl.trustStorePassword=123456 -jar ...
ale nie działa wtedy żaden inny certyfikat oprócz tego - może komuś to pomoże dokończyć to rozwiązanie. Jest o tyle lepsze, że nie dodajemy do systemu na stałe dodatkowego certyfikatu.
Jeśli chcemy zmieniać, jak JOSM się odpala, to uruchomienie tej funkcjonalności, która na podstawie certyfikatu przedstawionego przez serwer dociąga brakujący certyfikat pośredni (obsługa rozszerzenia Authority Information Access - CA Issuers), powinna zadziałać. Wystarczy dodać -Dcom.sun.security.enableAIAcaIssuers=true do opcji uruchomienia Javy. Niestety, swoje lokalne środowisko doprowadziłem do stanu, w którym nie mogę tego teraz przetestować.
Edit: udało się przetestować, to rozwiązanie też działa.
Bazując na wszystkich informacjach może to kwestia tego że certificate chain nie jest kompletny i wymaga on dodatkowego pobrania? Na ssl labs jest ostrzeżenie o tym na górze też.
A insecure renegotiation to problem który na geoportalu jest od dłuższego czasu i wcześniej działało.
No i inne aplikacje sobie radzą bo mogą go w miarę automatycznie pobrać. Geoportal powinien wysłać całkowity chain a nie tylko częściowy (dla pełnej kompatybilności).
Zgadza się, i opcja enableAIAcaIssuers, którą przywołałem, włącza właśnie to dociąganie pośredniego certyfikatu, co jest w Javie akurat domyślnie wyłączone.
Pisałem w takiej sprawie już kiedyś, albo do GUGiK-u albo do warszawskiej geodezji (nie pamiętam ), i poprawili, więc dobrze, że @NieWnen dał znać, jest duża szansa, że zadziałają.
Tak, to jest ten problem, który powoduje, że nowsze wersje OpenSSL-a nie chcą się łączyć jak wyżej u @gscscnd, ale przeglądarki ani Java na razie nie krzyczą z tego powodu.
@Marek_P włączył dla pierwszej wiadomości Tryb Wiki, a ja jako pierwszy ją edytowałem. Teraz każdy może do niej dopisać rozwiązanie.
Nie widziałem wcześniej tej funkcji w użyciu, zobaczymy jak się sprawdzi.
Dodałem w pierwszym poście rozwiązanie, które znalazłem na kanale OSM na Discordzie. U mnie na Windows 10 działa. Tę dodatkową linijkę dodałem na samym końcu w pliku JOSM.cfg
Na Androidzie można zainstalować certyfikat z pliku, .der z podanego wyżej linka powinno dać się przez systemowe Ustawienia. A docelowo albo GUGiK przekonfiguruje, albo w każdej z aplikacji trzeba włączyć Authority Information Access (AIA) Extension.
BTW androidowa aplikacja Geoportal też nie działa.
Dziękujemy za zgłoszenie, faktycznie problem z usługami związany był z certyfikatami. W wyniku złego parsowania certyfikatu przez jedno z urządzeń bezpieczeństwa pełen chain nie był prezentowany dla użytkowników. Problem został rozwiązany przez obszar bezpieczeństwa.