SSL: błąd: 0b080074: procedury certyfikatu x509: x509 sprawdź klucz prywatny: niedopasowanie wartości kluczy

Nie jestem w stanie skonfigurować SSL. Wygooglowałem i znalazłem kilka rozwiązań, ale żadne z nich nie działało dla mnie. Potrzebuję pomocy...

W tym celu należy skontaktować się z Działem obsługi klienta.]}
root@s17925268:~# service nginx restart
Restarting nginx: nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/nginx/conf.d/ssl/ssl.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
nginx: configuration file /etc/nginx/nginx.conf test failed

Mój certyfikat pochodzi z StartSSL i jest ważny przez 1 rok.

Oto co przetestowałem:

  • certyfikat i klucz prywatny nie mają spacji końcowych.
  • nie używam domyślnego serwera.plik klucza.
  • Sprawdziłam nginx.conf i dyrektywy wskazują poprawny klucz prywatny i certyfikat.

Sprawdziłem również moduł i dostaję inny moduł zarówno dla klucza, jak i certyfikatu.

Dziękuję za pomoc. :)
Author: Galou, 2014-10-04

10 answers

Mam hash MD5 z różnymi wynikami zarówno dla klucza, jak i certyfikatu.

To mówi wszystko. Masz niedopasowanie między kluczem a certyfikatem.

Moduł powinien pasować. Upewnij się, że masz poprawny klucz.

 27
Author: dev0z,
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-10-07 00:17:00

Kiedy już ustalisz, że nie pasują, nadal masz problem -- co z tym zrobić. Często certyfikat może być po prostu nieprawidłowo złożony. Kiedy CA podpisuje twój certyfikat, wysyła Ci blok, który wygląda jak

-----BEGIN CERTIFICATE-----
MIIAA-and-a-buncha-nonsense-that-is-your-certificate
-and-a-buncha-nonsense-that-is-your-certificate-and-
a-buncha-nonsense-that-is-your-certificate-and-a-bun
cha-nonsense-that-is-your-certificate-and-a-buncha-n
onsense-that-is-your-certificate-AA+
-----END CERTIFICATE-----

Wyślą Ci również Pakiet (często dwa certyfikaty), który reprezentuje ich uprawnienia do przyznania Ci certyfikatu. to będzie wyglądać jak

-----BEGIN CERTIFICATE-----
MIICC-this-is-the-certificate-that-signed-your-request
-this-is-the-certificate-that-signed-your-request-this
-is-the-certificate-that-signed-your-request-this-is-t
he-certificate-that-signed-your-request-this-is-the-ce
rtificate-that-signed-your-request-A
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICC-this-is-the-certificate-that-signed-for-that-one
-this-is-the-certificate-that-signed-for-that-one-this
-is-the-certificate-that-signed-for-that-one-this-is-t
he-certificate-that-signed-for-that-one-this-is-the-ce
rtificate-that-signed-for-that-one-this-is-the-certifi
cate-that-signed-for-that-one-AA
-----END CERTIFICATE-----
Poza tym, że niestety, nie będą tak wyraźnie oznaczone.

Powszechną praktyką jest zatem łączenie tych wszystkich plików w jeden plik-certyfikat, a następnie certyfikaty podpisywania. Ponieważ jednak nie da się ich łatwo odróżnić, zdarza się, że ktoś przypadkowo umieszcza je w innej kolejności-podpisując certy, a następnie ostateczny cert-nie zauważając. W takim przypadku twój certyfikat nie będzie pasował do Twojego klucza.

Możesz sprawdzić, co cert myśli, że reprezentuje, uruchamiając

openssl x509 -noout -text -in yourcert.cert

U góry powinieneś zobaczyć "Subject:" i potem rzeczy, które wyglądają jak Twoje dane. Jeśli zamiast tego wygląda podobnie do twojego CA, Twój Pakiet prawdopodobnie jest w złej kolejności; możesz spróbować wykonać kopię zapasową, a następnie przenieść ostatni cert na początek, mając nadzieję, że to ten, który jest Twoim certem.

Jeśli to nie zadziała, będziesz musiał ponownie wydać certyfikat. Kiedy robię CSR, Lubię wyraźnie oznaczać, do jakiego serwera jest przeznaczony (zamiast tylko ssl.klucz lub serwer.klucz) i zrób jego kopię z datą w nazwie, jak mydomain.20150306.klucz itd. w ten sposób pary kluczy prywatnych i publicznych są mało prawdopodobne, aby pomieszały się z innym zestawem.
 131
Author: Vynce,
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
2015-03-06 07:43:10
  1. Upewnij się, że certyfikat i klucz są w formacie PEM. If not then then convert them using openssl command
  2. Sprawdź hash MD5 klucza publicznego, aby upewnić się, że pasuje do tego, co znajduje się w kluczu prywatnym

    Certyfikat Openssl x509-noout-modulus-in.crt / OpenSSL md5

    OpenSSL RSA-noout-modulus - in privateKey.key / OpenSSL md5
 51
Author: dev0z,
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-10-04 19:06:11

Jeśli tak się stanie i używasz Let ' s Encrypt / certbot, najprawdopodobniej użyłeś chain.pem zamiast fullchain.pem.

Powinno być coś takiego:

ssl_certificate /etc/certbot/live/example.com/fullchain.pem;
ssl_certificate_key /etc/certbot/live/example.com/privkey.pem;

Zobacz certbot docs " gdzie są moje certyfikaty?"

 7
Author: Marian,
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-12-15 00:35:56

Miałem ten sam problem i ostatecznie go rozwiązałem zmieniając kolejność bloków pem w pliku certyfikatu.

Blok cert powinien być umieszczony na początku pliku, następnie bloki pośrednie, a następnie blok główny.

Zdałem sobie sprawę z tego problemu, porównując problematyczny plik certyfikatu z roboczym plikiem certyfikatu.

 3
Author: fuweichin,
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
2018-01-23 11:57:43

Miałem ten problem, ponieważ dodawałem pakiet i certyfikat w złej kolejności, więc może to pomoże komuś innemu.

Przed (co jest złe):

cat ca_bundle.crt certificate.crt > bundle.crt

Po (co jest słuszne)

cat certificate.crt ca_bundle.crt > bundle.crt

W tym celu należy skontaktować się z naszym Biurem Obsługi Klienta.]}

Jeśli certyfikat serwera i pakiet zostały połączone w niewłaściwej kolejności, nginx nie uruchomi się i wyświetli komunikat o błędzie:

SSL_CTX_use_PrivateKey_file(" ... /www.example.com.key") failed
   (SSL: error:0B080074:x509 certificate routines:
    X509_check_private_key:key values mismatch)
 2
Author: Mandeep Gill,
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
2018-10-06 04:29:50

W moim przypadku chciałem zmienić certyfikat ssl, ponieważ zmieniłem mój serwer, więc musiałem utworzyć nowy csr za pomocą tej komendy:

$openssl req-new-newkey rsa: 2048-nodes-keyout mysite.key-out mysite.csr

Wysłałem mysite.po otrzymaniu certyfikatu crt, a następnie ponownie uruchomiłem nginx i mam ten błąd

(SSL: error: 0b080074: x509 procedury certyfikatu: X509_check_private_key: wartości klucza mismatch)

Po wielu śledztwach, błąd polegał na tym, że moduł z pliku klucza nie był taki sam z tym z pliku crt

Tak więc, aby to działało, utworzyłem nowy plik csr, ale zmieniłem nazwę pliku za pomocą tego polecenia

$openssl req-new-newkey rsa: 2048-nodes-keyout mysite_new.key-out mysite_new.csr

Następnie otrzymałem nowy plik crt od dostawcy firmy, uruchom ponownie nginx i zadziałało.

 1
Author: lemon fish,
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-02-08 11:32:35

Moje 5 groszy na temat:

Miałem ten sam problem. Po około 1 godzinie opieki nad nim, okazało się, że wkleiłem certyfikat nieprawidłowo.

Jeśli masz taki błąd, sprawdź certyfikat.

 1
Author: Nick,
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-10-19 10:26:32

Może się to zdarzyć również wtedy, gdy twój CA wystawi pośredni cert [3]}natknąłem się na ten problem (dwa razy) z nginx i Żadne z rozwiązań w tym poście nie wyjaśniło problemu. Wpis na blogu autorstwa miłego Pana o imieniu Marco. wklejam go tutaj dla każdego, kto również wpadnie w to, co widziałem. https://medium.com/@mrkdsgn/steps-to-install-a-go-daddy-ssl-certificate-on-nginx-on-ubuntu-14-04-ff942b9fd7ff

W moim przypadku, Go-daddy był CA i to jest specyficzne dla tego, w jaki sposób wydają Pakiety cert i Cert pośredni.

Oto fragment postu Marco na blogu [10]}

W Nginx, jeśli twój urząd certyfikacji zawiera certyfikat pośredni, musisz utworzyć pojedynczy Łańcuchowy plik certyfikatu, który zawiera twój certyfikat i certyfikaty pośrednie urzędu certyfikacji.

Możesz użyć tego polecenia do utworzenia połączonego pliku o nazwie example. com. chained. crt:

cat example.com.crt intermediate.crt > example.com.chained.crt

 0
Author: Shyam Habarakada,
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
2018-03-15 23:52:50

Dla Nginx;

1 - OpenSSL req-newkey rsa: 2048-nodes-keyout domain.com.key-out domain.com.csr

2-Plik SSL domain_com.pliki crt i domain_com.ca-bundle kopiują nowy plik w wklejonej domenie.com.chained.crt

3-Dodaj pliki nginx: a. ssl_certificate /home / user / domain_ssl / domain. com. chained. crt; b. ssl_certificate_key/home/user/domain_ssl / domain.com.key;

Lates restart Nginx

 0
Author: electrocoder,
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
2018-09-09 22:19:34