5

Kupiłem COMODO code signing certificate i użyłem go do podpisania mojej aplikacji webstart java.Java Webstart mówi, że moja aplikacja używa certyfikatu z podpisem własnym, ale użyłem certyfikatu podpisywania kodu COMODO

Główne pytanie: Czy certyfikat podpisywania kodu COMODO jest obsługiwany przez java 8?

Więcej informacji:

na wszystkich komputerach z wyjątkiem własnego, bloki java aplikacji, mówiąc, że używa samodzielne podpisany certyfikat.

Nie rozumiem nawet, dlaczego działa na moim komputerze. Spojrzałem na listę zaufanych źródeł certyfikatów w panelu sterowania java (1.8.0_45-b15), ale nie mogę znaleźć tam "Urzędu Certyfikacji COMA RSA".

Widzę ten certyfikat w przystawce certyfikatu Windows MMC w sekcji "Zaufane główne urzędy certyfikacji". Ale na co najmniej 3 innych maszynach nie istnieje.

+1

Czy jesteś pewien, że użył tego certyfikatu? Czy posiadasz również samopodpisany certyfikat? – EJP

+0

Tak, ponieważ na moim komputerze witryna internetowa Java wyświetla nazwę wydawcy zgodnie z certyfikatem, a także mogę przejrzeć szczegóły certyfikatu i zobaczyć certyfikaty COMODO w łańcuchu. – Zalumon

+1

Czy możesz zwrócić i otrzymać zwrot pieniędzy? :) spróbuj innego CA. – ZhongYu

Odpowiedz

4

I wreszcie rozwiązany - oto historia:

Kiedy kupiłem certyfikat, musiałem zbierać je, przechodząc do adresu strony, że otrzymane przez email. Tam certyfikat został automatycznie zainstalowany w magazynie zaufanych certyfikatów przeglądarki (Firefox).

Następnie wyeksportowałem go z przeglądarki Firefox (Opcje - Zaawansowane - Wyświetl certyfikaty - Twoje certyfikaty - przycisk Kopia zapasowa).

Co ja nie zdawałem sobie sprawy, w tym czasie był to Firefox, w przeciwieństwie do Java i Windows, ma "organ certyfikujący" COMODO RSA jako wbudowana tokena:

Co ja również nie zrobił W tamtym momencie wiadomo było, że eksport certyfikatu Firefox wydaje się zawierać łańcuch certyfikatów tylko do pierwszego zaufanego urzędu, w tym przypadku "Urząd certyfikacji COMODO RSA".

Od tego COMODO support site dowiedziałem się, że łańcuch powinien faktycznie jeden wyższy, przez całą drogę aż do „AddTrust External CA Korzeń”:

To brzmiało znacznie bardziej obiecujące, ponieważ certyfikatu AddTrust jest rzeczywiście zawarte w Oracle java 8 cacerts truststore, który jest odpowiedzialny za weryfikację słoika podczas webstartu java.

Następną rzeczą, którą zrobiłem, było zaimportowanie pliku * .p12, który dostałem z przeglądarki Firefox do menedżera certyfikatów Windows (Start - certmgr.msc), ponieważ z jakiegoś powodu myślałem, że to jest sposób na konwersję * .p12 na * .pfx (chociaż teraz wiem, że oba rozszerzenia są używane dla tego samego formatu magazynu kluczy pkcs12). W każdym razie, podczas importu to pytanie pojawiło się:

Tutaj zrobiłem błąd krytyczny: kliknąłem tak. To spowodowało, że „organ certyfikacji” COMODO RSA być zainstalowany w truststore Windows jako „Certyfikat Trusted root” (btw widoczne dopiero po ponownym uruchomieniu certmgr.msc):

Mój certyfikat podpisywania kodu został zainstalowany w "Osobiste/Certyfikaty". Wyeksportowałem go stamtąd (Działanie - Wszystkie zadania - Eksportuj ...) i zaznacz "Dołącz wszystkie certyfikaty na ścieżce certyfikacji, jeśli to możliwe".

teraz dokładnie to samo stało jak kiedy eksportowane z Firefoksa. Ponieważ system Windows miał teraz "Urząd certyfikacji COMODO RSA" zainstalowany jako zaufany certyfikat główny, zawierał łańcuch tylko do tego. To co mam po eksporcie:

A teraz przenieść geniuszem, który natknąłem się przez czysty przypadek: Usunąłem „Certification Authority COMODO RSA” od kierownika certyfikacji Windows.Teraz, kiedy podwójnym kliknięciu mój certyfikat podpisywania kodu, wyświetlany łańcuch nagle wyglądała inaczej:

Przyznaję, mam małą adrenaliny, kiedy zobaczyłem to. Wyeksportowałem ponownie (dokładnie takie same ustawienia jak wcześniej).

I rzeczywiście, po tym jak podpisał mój wniosek z tego eksportowanego certyfikatu, Java Web Start akceptuje go:

2

UPDATE: To było uwolnienie JRE bug. Comodo's new CA certs were added to the default keystore in Java 8u51.

Odpowiedź na kolejne pytanie, które choć nieco nie na miejscu wydaje się bardzo na temat tutaj:

Można powiedzieć, czy certs CA będzie pracować dla Java podpisywania kodu przez bada Java cacerts plik , która zawiera listę wszystkich urzędów certyfikacji znanych pod adresem Java. Jeśli ich certyfikat znajduje się w tym pliku, to Java nie będzie narzekać na podpisany kod pod . Jeśli nie, to ostrzeże użytkowników. Dla przykład:

[email protected]:~# keytool -list -keystore /usr/lib/jvm/java-6-sun-1.6.0.15/jre/lib/security/cacerts | grep comodo

Enter keystore password: changeit

comodoaaaca, 02-May-2006, trustedCertEntry,

pamiętać, że musiał wprowadzić domyślne hasło magazynu kluczy, changeit. To polecenie powinno również działać w systemie Windows, ale musisz zmienić ścieżkę dostępu do pliku cacerts, aby nie było grep. Skorzystaj z większej liczby i przeglądaj strony, aż znajdziesz lub nie znajdziesz tego, czego szukasz.

Na dzień dzisiejszy Comodo znajduje się w pliku cacerts, a startssl nie. Tak więc certyfikat startssl nie byłby zbyt dobry dla kodu Java.

Źródło: https://stackoverflow.com/a/1906679/154527

+0

Dzięki, ale to było w 2009 roku, z Java 6. W java 7 i 8, jedynym wystąpieniem Comodo I widać w tym wyjściu jest dla certyfikatu o nazwie "AAA Certificate Services", który nie jest tym, którego używają do certyfikaty podpisywania kodu. – Zalumon

+1

@Zalumon mój cytat dotyczył tego, jak rozpoznać, czy Comodo jest zaufanym ośrodkiem CA podpisującym kod. Czy jest to jakoś niepoprawny proces? Wygląda na to, że dostałeś odpowiedź i zwrot pieniędzy jest w porządku. –

+0

nie, o ile rozumiem, jest to wciąż poprawny proces ustalania, które certyfikaty są zaufane przez java (chociaż na podstawie mojego eksperymentu myślę, że java może również używać zaufanego magazynu Windows). Poprawiłem twoją odpowiedź w momencie, kiedy poddałem się i uważałem, że mój certyfikat jest bezużyteczny. Dopiero później zrozumiałem prawdziwy problem ... przepraszam! – Zalumon

1

mogę dać odpowiedź warunkową. Na jednym z komputerów, który nie podoba się certyfikat, przejdź do http://jonathancrosmer.com/software/invadeearth/ i kliknij Invade Earth.
Ten program używa certyfikatu Comodo. Zbudowałem go na Javie 7, ale jeśli twój komputer ma tylko środowisko uruchomieniowe Java 8, powinien nadal działać. 1. Jeśli otrzymasz to samo ostrzeżenie, wiesz, że jest to problem związany z językiem Java 8. 2. W przeciwnym razie wiesz, że coś jest nie tak z twoim certyfikatem. Tak czy inaczej, prawdopodobnie będziesz chciał uzyskać zwrot pieniędzy od wystawcy certyfikatu, ponieważ reklamują one, że ich certyfikat jest zaufany przez Javę.

+1

Zobacz również http://stackoverflow.com/questions/27992275/why-does-java-on-one-particular-installation-think-im-self-signing?rq=1 –

+1

Świetnie, dzięki za to! Zaczynam rozumieć ten cały system. Twoja aplikacja webstart działa dla mnie, a powodem jest to, że twój główny certyfikat to "UTN-USERFirst-Object", który przypadkiem istnieje zarówno w magazynie zaufanych certyfikatów mojego okna Windows 7, jak iw magazynie zaufanych certyfikatów Cacerts mojego zainstalowanego Oracle jre 1.8. 0_u45 służy do uruchamiania aplikacji internetowej. Źródłem otrzymanego certyfikatu jest "Urząd certyfikacji COMODO RSA". – Zalumon

+0

Cieszę się, że to było pomocne! –

Powiązane problemy