Mój klient używa samopodpisanego certyfikatu do działania aplikacji. Aby móc pracować, muszę zainstalować certyfikat główny, którego użyli do podpisania certyfikatu.
Czy można skonfigurować certyfikat główny, aby sprawdzał się tylko w jednej domenie?
certificate
restrictions
MichaelD
źródło
źródło
Odpowiedzi:
Jako zasada:
Nie , implikacją zaufania do certyfikatu CA klienta jest zaufanie do każdego certyfikatu podpisanego przez ten CA.
Nie znam żadnych aplikacji / bibliotek, które mają łatwą opcję, która pozwala jako użytkownik końcowy wybrać, że będziesz ufać swoim klientom lub innym certyfikatom CA tylko dla niektórych (pod) domen, tj. Tylko dla *. example.com i * .example.org i nic więcej.
Mozilla ma podobne obawy dotyczące obecnie zaufanych sponsorowanych przez rząd urzędów certyfikacji jako otwartego punktu uwagi i na przykład Chrome ma wbudowane dodatkowe kontrole dostępu do stron Google, w ten sposób fałszywy * .google.com certyfikat i kompromis Diginotar CA stały się publiczne .
Ale nawet jeśli nie ufasz urzędowi certyfikacji, nadal możesz importować / ufać konkretnemu certyfikatowi serwera podpisanemu przez ten urząd certyfikacji, co zapobiegnie ostrzeżeniom SSL dla nazw hostów w tym certyfikacie. To powinno sprawić, że aplikacja będzie działać bez błędów i reklamacji.
Wyjątki:
Bardzo rzadko wykorzystywaną opcją standardu PKI X.509v3 jest rozszerzenie Ograniczenia nazw , które pozwala certyfikatowi CA zawierać białe i czarne listy wzorców nazw domen, dla których jest upoważniony do wydawania certyfikatów.
Możesz mieć szczęście, a Twój klient powstrzymał się, gdy konfigurował infrastrukturę PKI i umieścił to ograniczenie nazwy w certyfikacie urzędu certyfikacji. Następnie możesz zaimportować bezpośrednio ich certyfikat CA i wiedzieć, że może on zweryfikować tylko ograniczony zakres nazw domen.
źródło
example.com
lub*.ad.example.com
są niepoprawne. Twój wewnętrzny urząd certyfikacji może również wydawać certyfikaty*.example.bank
umożliwiające miły atak typu man-in-the-middle i szpiegowanie poświadczeń bankowości internetowej.@CryptoGuy miał tutaj całkiem dobrą odpowiedź, ale chciałem ją rozwinąć.
Parafrazować:
A oto, jak to działa (za pomocą wiersza polecenia OpenSSL CA)
Utwórz prosty urząd certyfikacji
Możesz pominąć tworzenie pośredniego urzędu certyfikacji
Utwórz żądanie pośredniego urzędu certyfikacji z ograniczeniami nazw.
Z tym w
ossl_domain_com.cfg
pliku:Następnie podpisz ten urząd certyfikacji domeny pośredniej za pomocą swojego urzędu certyfikacji.
Jeśli pominiesz tworzenie pośrednika, użyj głównego urzędu certyfikacji do podpisania
Teraz ponownie podpisz oryginalny urząd certyfikacji domeny pod swoim urzędem, używając ich certyfikatu. Możesz dodać rozszerzenia CA tutaj.
Może być konieczne użycie
-x509-to-req
argumentu do utworzenia żądania, które podpisałbyś dokładnie w taki sam sposób, jak powyższy półprodukt.Teraz dodaj główny urząd certyfikacji, pośredni urząd certyfikacji i domenę cross-ca do bazy danych zaufania przeglądarki.
źródło
basicConstraints
Wydaje się również, że wiersz w pliku konfiguracyjnym powoduje dwukrotne włączenie rozszerzenia ograniczenia do certyfikatu, co powoduje, że Firefox odrzuca certyfikat z tajemniczym komunikatem o błędzie. Myślę, że można go bezpiecznie usunąć.error with certificate to be certified - should be self signed
. Co to znaczy i jak to rozwiązać? pastebin.ubuntu.com/p/QHhpQh2N6J