/ / Ten samopodpisany certyfikat używany przez serwer i klienta (curl z --cacert), ale pobieranie https nadal się nie udaje? - curl, openssl, certyfikat ssl, tls1.2, auto-podpis

Ten samopodpisany certyfikat używany przez serwer i klienta (curl z --cacert), ale pobieranie https nadal się nie udaje? - curl, openssl, certyfikat ssl, tls1.2, auto-podpis

Śledziłem różne tutoriale i stackoverflowpytania, aby dowiedzieć się, jak stworzyć samopodpisany certyfikat, upewniając się, że ma on nazwy serwerów alt, używaj ich do skonfigurowania https dla serwera ekspresowego i pomyślnie wysyłaj żądania przeciwko serwerowi z przeglądarki (po dodaniu certyfikatu jako zaufanego certyfikatu do przeglądarka).

Ponownie pobrałem certyfikat w następujący sposób: openssl s_client -showcerts -servername mydevserver -connect mydevserver:443 </dev/null

Następnie skopiowałem tekst między "begin certificate" a "end certificate" na /etc/ssl/thecert.crt

Korzystanie z narzędzi linii poleceń do trafiania w ten sam punkt końcowy https nie działa, np .: curl -v --cacert "/etc/ssl/thecert.crt" -H "Content-Type: application/json" https://mydevserver:443/api

Widzę zwijanie za pomocą cacert w szczegółowym wyniku, ale nadal narzeka: SSL certificate problem: unable to get local issuer certificate

  • Czy sam certyfikat jest źle skonfigurowany (jeśli tak, to dlaczego przeglądarka go akceptuje)?
  • Czego jeszcze brakuje?

Odpowiedzi:

0 dla odpowiedzi № 1

Okazuje się, że certyfikat samopodpisany nie był wystarczający, aby uczynić go "godnym zaufania". Musi być podpisany przez urząd certyfikacji.

  1. Musiałem najpierw utworzyć mój własny urząd certyfikacji (CA) przy użyciu samopodpisany certyfikat, a następnie użyj tego certyfikatu wynikowego podpisać nowy certyfikat CSR / certyfikat dla danego serwera.

  2. Następnie, po dodaniu certyfikatu CA do lokalnego urzędu certyfikacjiprzechowuj, zwiń nie nawet potrzebujesz parametru --cacert; jak inni klienci https może zweryfikować certyfikat otrzymany z serwera, ponieważ to powie mi, podpisany przez mój CA, który jest zaufany na komputerze lokalnym.

Mam nadzieję, że to pomaga komuś.