Tworzenie własnoręcznie podpisanego certyfikatu dla domeny i subdomen-NET:: ERR CERT nazwa zwyczajowa INVALID

Śledziłem Ten tutorial do tworzenia podpisanych certyfikatów SSL w systemie Windows w celach rozwojowych i działał świetnie dla jednej z moich domen (używam pliku hosts do symulacji dns). Potem pomyślałem, że mam wiele subdomen i byłoby to wrzodem na tyłku, aby utworzyć certyfikat dla każdej z nich. Próbowałem więc utworzyć certyfikat za pomocą wildcard w polu Common, jak sugerowano w niektórych odpowiedziach w serverfault. Tak:

Common Name: *.myserver.net/CN=myserver.net

Jednakże, po zaimportowaniu tego certyfikatu do Trusted Root Certification Authority, w Chrome pojawia się błąd NET::ERR_CERT_COMMON_NAME_INVALID dla domeny głównej i wszystkich jej subodmain, na przykład: https://sub1.myserver.net i https://myserver.net.

Ten serwer nie mógł udowodnić, że jest myserver.net; certyfikat bezpieczeństwa jest z *.myserver.net/CN=myserver.net.

Może to być spowodowane błędną konfiguracją lub przechwyceniem połączenia przez atakującego.

Czy w polu Nazwa zwyczajowa jest coś nie tak, że czy przyczyną tego błędu?

Author: 76484, 2014-12-04

9 answers

Jak stwierdził Rahul, jest to powszechny błąd Chrome i OSX. Miałem podobne problemy w przeszłości. W rzeczywistości w końcu zmęczyło mnie tworzenie dodatkowych kliknięć 2 [tak, Wiem, że nie jest wiele] podczas testowania lokalnej witryny do pracy.

Jeśli chodzi o możliwe obejście tego problemu [przy użyciu systemu Windows], użyłbym jednego z wielu dostępnych narzędzi do samodzielnego podpisywania certyfikatów .

Zalecane Kroki:

  1. utwórz własny podpisany Cert
  2. Import Certyfikat do Menedżera certyfikatów Windows
  3. Importuj certyfikat w Menedżerze certyfikatów Chrome
    Uwaga: Krok 3 rozwiąże problem, który wystąpił , gdy Google usunie błąd...biorąc pod uwagę, że czas w był nieświeży, nie ma ETA w przewidywalnej przyszłości.**

    chociaż wolę używać Chrome do rozwoju, znalazłem się ostatnio w Firefox Developer Edition . który nie ma tego problemu.

    Mam nadzieję, że to pomoże :)
 20
Author: Thomas.Donnelly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-23 03:59:38

Chrome 58 posiada wycofane wsparcie dla certyfikatów bez nazw alternatywnych obiektów .

Idąc dalej, może to być kolejny powód napotkania tego błędu.

 58
Author: Michael Renner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-03 09:11:44

Obejściem jest dodanie nazw domen, których używasz jako "subjectAltName" (x509v3 Subject Alternative Name). Można to zrobić zmieniając konfigurację OpenSSL ({[1] } w Linuksie) i zmodyfikować sekcję v3_req, aby wyglądała tak:

[ v3_req ]

# Extensions to add to a certificate request

basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = myserver.net
DNS.2 = sub1.myserver.net

Przy tym, nie zapomnij użyć przełącznika -extensions v3_req podczas generowania nowego certyfikatu. (Zobacz także Jak mogę wygenerować certyfikat z własnym podpisem z SubjectAltName przy użyciu OpenSSL?)

 26
Author: Fabian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:43

Utwórz plik openssl.conf:

[req]
default_bits = 2048
default_keyfile = oats.key
encrypt_key = no
utf8 = yes
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no

[req_distinguished_name]
C = US
ST = Cary
L = Cary
O  = BigCompany
CN = *.myserver.net

[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1 = myserver.net
DNS.2 = *.myserver.net

Uruchom ten komand:

openssl req -x509 -sha256 -nodes -days 3650 -newkey rsa:2048 -keyout app.key -out app.crt  -config openssl.conf

Pliki wyjściowe app.crt i app.key działają dla mnie.

 18
Author: Alykoff Gali,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-11 19:01:16

Your wildcard *.example.com does nie obejmuje domenę główną example.com, ale obejmuje dowolny wariant na sub -domenie, takiej jak www.example.com lub test.example.com

Preferowaną metodą jest ustalenie alternatywnych nazw przedmiotów, jak w odpowiedzi Fabiana , ale należy pamiętać, że Chrome obecnie wymaga, aby nazwa zwyczajowa była dodatkowo wymieniona jako jedna z alternatywnych nazw przedmiotów(co jest poprawnie pokazane w jego odpowiedzi). Niedawno odkryłem ten problem, ponieważ Miałem wspólną nazwę {[1] } z SANs www.example.com i test.example.com, ale dostałem Ostrzeżenie NET::ERR_CERT_COMMON_NAME_INVALID od Chrome. Musiałem wygenerować nowe żądanie podpisywania certyfikatu z example.com jako wspólną nazwą i jednym z SANs. Następnie Chrome w pełni zaufał certyfikatowi. Nie zapomnij zaimportować certyfikatu głównego do Chrome jako zaufanego organu do identyfikacji witryn internetowych.

 14
Author: Jeff Puckett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:36

Myślę, że to może być błąd w chrome. Był podobny problem dawno temu: Zobacz też

Spróbuj w innej przeglądarce. Myślę, że powinno działać dobrze.

 5
Author: Rahul Sreeram,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-09 06:12:08

Dla wszystkich, którzy napotkają to i chcą zaakceptować ryzyko, aby go przetestować, istnieje rozwiązanie: przejdź do trybu Incognito w Chrome, a będziesz mógł otworzyć " zaawansowane "i kliknąć" przejdź do niektórych.url".

Może to być pomocne, jeśli chcesz sprawdzić stronę internetową, którą sam utrzymujesz i po prostu testujesz jako programista (i kiedy nie masz jeszcze skonfigurowanego odpowiedniego certyfikatu deweloperskiego).

Oczywiście nie jest to dla osób korzystających ze strony internetowej w produkcji, gdzie to błąd wskazuje, że wystąpił problem z bezpieczeństwem witryny.

 1
Author: bashmish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-21 10:57:27

Jeśli jesteś zmęczony tym błędem. Możesz sprawić, że Chrome nie będzie się tak zachowywał. Nie mówię, że to najlepszy sposób.

Jako obejście można utworzyć klucz rejestru systemu Windows, aby umożliwić Google Chrome używanie nazwy wspólnej certyfikatu serwera w celu dopasowania nazwy hosta, jeśli certyfikat nie zawiera rozszerzenia subjectAlternativeName, o ile pomyślnie waliduje i łączy się z lokalnie zainstalowanymi certyfikatami CA.

Typ danych: Boolean [Windows: REG_DWORD] Lokalizacja rejestru systemu Windows: HKEY_LOCAL_MACHINE \ SOFTWARE\Policies\Google \ Chrome Windows / Mac / Linux / Android nazwa preferencji: EnableCommonNameFallbackForLocalanchors Wartość: 0x00000001 (Windows), true (Linux), true (Android), (Mac) Aby utworzyć klucz rejestru systemu Windows, wykonaj następujące kroki:

Otwarty Notatnik Skopiuj i wklej następującą zawartość do notatnika Windows Registry Editor Wersja 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome] "EnableCommonNameFallbackForLocalanchors" = dword:00000001 Przejdź do Plik > Zapisz jako Nazwa pliku: any_filename.reg Zapisz jako typ: wszystkie Pliki

Wybierz preferowaną lokalizację pliku

Kliknij Zapisz

Kliknij dwukrotnie zapisany plik, aby uruchomić

Kliknij Tak na ostrzeżeniu edytora rejestru

Znalazłem tę informację w Pomocy Symantec strona: https://support.symantec.com/en_US/article.TECH240507.html

 0
Author: ambidexterous,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-18 12:34:35

Odpowiedzi nie zadziałały dla mnie (Chrome lub Firefox) podczas tworzenia PWA dla lokalnego rozwoju i testowania. NIE UŻYWAĆ DO PRODUKCJI! Udało mi się użyć:

  1. online certificate tools site z następującymi opcjami:
    • nazwy zwyczajowe: Dodaj zarówno "localhost", jak i IP Twojego systemu, np. 192.168.1.12
    • Alternatywne nazwy tematu: Dodaj " DNS " = "localhost" i " IP " = <your ip here, e.g. 192.168.1.12>
    • " CRS "rozwijane opcje ustawione na" Self Znak "
    • wszystkie inne opcje były domyślne
  2. Pobierz wszystkie linki
  3. Import .p7b cert do Windows klikając dwukrotnie i wybierając "install" / OSX?/Linux?
  4. Dodano certy do aplikacji node... korzystanie z przykładu Google PWA
    • dodaj const https = require('https'); const fs = require('fs'); do górnej części serwera.plik js
    • skomentuj return app.listen(PORT, () => { ... }); na dole serwera.plik js
    • Dodaj poniżej https.createServer({ key: fs.readFileSync('./cert.key','utf8'), cert: fs.readFileSync('./cert.crt','utf8'), requestCert: false, rejectUnauthorized: false }, app).listen(PORT)

Nie mam więcej błędów w Chrome lub Firefox

 0
Author: James Nelson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-01-28 05:15:39