2009-08-19 13 views
5

Wygenerowałem samopodpisany certyfikat dla mojej aplikacji Java za pomocą keytool. Jednak, gdy odwiedzam witrynę w przeglądarce, zawsze pojawia się ostrzeżenie - mówiąc, że ta strona nie jest właścicielem certyfikatu - czy istnieje sposób na samokreślenie/zaświadczenie certyfikatu, więc nie otrzymam tych ostrzeżeń w przeglądarka? Zarówno serwer, jak i przeglądarka znajdują się na tym samym hoście i przechodzę do witryny, używając "http://localhost/". Nie chcę dodawać wyjątku do przeglądarki, ponieważ mam testy uruchamiane na dużej farmie budującej, więc dodanie wyjątku do wszystkich przeglądarek na wszystkich maszynach kompilacji jest zbyteczne.Czy mogę utworzyć samopodpisany certyfikat w Javie, który będzie automatycznie ufał przeglądarkom internetowym?

Odpowiedz

4

Można również ustawić samopodpisany urząd certyfikacji (CA) przy użyciu OpenSSL lub prawdopodobnie narzędzia Java. Następnie można użyć tego urzędu certyfikacji do podpisania wielu certyfikatów serwera.

Nadal będziesz musiał ręcznie ufać własnoręcznie podpisywanym urzędom certyfikacji na wszystkich klientach uzyskujących dostęp do serwerów testowych, ale musisz przynajmniej zaufać tylko jednemu głównemu urzędowi certyfikacji, a nie grupie pojedynczych certyfikatów z podpisem własnym. .

Inną opcją jest wyewidencjonowanie CAcert.

+0

RichieHindle ma rację. Ta metoda nie pozbędzie się ostrzeżeń w przeglądarce. – shosti

+0

Dobra odpowiedź Brian – sixtyfootersdude

19

Nie, nie możesz. Równie dobrze możesz zapytać "Jak mogę zrobić fałszywy certyfikat dla hsbc.com?"

Istnieją dwa sposoby, aby zdobyć przeglądarki, aby zaakceptować certyfikat:

  • Kup certyfikat dla domeny z zaufanego urzędu (czyli udowodnienie tego organu, że jesteś właścicielem tej domeny), a następnie użyć tego domena jako nazwa serwerów testowych
  • Zainstaluj certyfikat podpisywania w przeglądarkach, aby skutecznie stać się zaufanym organem dla tej przeglądarki.

Bez dotykania przeglądarek, nie ma innego sposobu, aby to zrobić - jak to możliwe, jeśli internet ma pozostać bezpieczny?

+1

+1 za energiczne nakładanie kleju :-) –

+5

@Corehpf - czy chcesz pomysłowej odpowiedzi czy prawdy? Nie ma ŻADNEGO sposobu, aby przeglądarki akceptowały certyfikaty z podpisem własnym lub certyfikaty podpisane przez certyfikat użytkownika innego niż root ... poza instalowaniem ich lub certyfikatem CA w przeglądarkach. –

1

Czy certyfikat został utworzony dla domeny localhost lub domeny test.textbox.com? Jeśli tworzysz certyfikat dla nazwy FQDN test.textbox.com, to w ten sposób musisz docierać do serwera, aby nie uzyskać tych błędów, o ile certyfikat jest poprawnie podpisany. Nie można wygenerować certyfikatu dla nazwy FQDN, a następnie użyć adresu IP lub aliasu (localhost), aby uzyskać do niego dostęp bez ostrzeżenia, że ​​rzeczy nie pasują poprawnie. Czy nie rozumiem twojego problemu?

+0

Uwaga: Oczywiście test.testbox.com jest tylko przykładem, którego użyłem do tego. – MattC

+0

Wykonuje samopodpisane certyfikaty (co oznacza, że ​​nie odsyła do żadnego z dobrze znanych urzędów certyfikacji), więc z definicji nie może ich automatycznie zaakceptować. Aby certyfikat został automatycznie zaakceptowany przez przeglądarkę, musi on wrócić do urzędu certyfikacji, o którym wie przeglądarka. –

+0

Tak, ale błąd polegający na tym, że witryna nie jest właścicielem certyfikatu, wskazuje, że nazwa hosta, dla której utworzono certyfikat, i wszystko, czego używa do uzyskania dostępu do tej witryny, to dwie różne rzeczy. Powiedział, że używa localhost i obstawiam, że cert jest dla rzeczywistej nazwy hosta serwera. To spowoduje, że w większości przeglądarek pojawią się czerwone flagi jako problem bezpieczeństwa. – MattC

1

Zamiast tego należy utworzyć certyfikat dla "localhost". Musi pasować do nazwy hosta w adresie URL.

Nadal będziesz dręczony, ponieważ certyfikat nie jest zaufany, ale jest to inny problem.

Powiązane problemy