Nie można dodać detektora SSL, nie znaleziono certyfikatu serwera dla klucza

19

Próbuję skonfigurować protokół SSL w module równoważenia obciążenia za pomocą certyfikatu zakupionego od GoDaddy.

Podczas próby przesłania certyfikatu do konsoli wystąpił błąd

Nie udało się utworzyć modułu równoważenia obciążenia: Nie znaleziono certyfikatu serwera dla klucza: arn: aws: iam :: ************: certyfikat-serwera / mycert

Nigdy wcześniej nie napotkałem tego błędu podczas dodawania certyfikatów SSL. Nie jestem pewien, dlaczego iamtu nawet jest używany.

Po pewnym czasie Googling mogłem przesłać mój certyfikat, iamużywając aws cli (ponownie, nie jestem pewien, dlaczego musiałem to zrobić).

Teraz podczas modyfikowania nasłuchiwaczy widzę mój przesłany certyfikat jako istniejący certyfikat SSL. Jednak gdy próbuję zapisać moje zmiany w module równoważenia obciążenia, pojawia się ten sam błąd. Sprawdziłem, czy certyfikat istnieje:

$ aws iam list-server-certificates
{
    "ServerCertificateMetadataList": [
        {
            "ServerCertificateId": "*********************", 
            "ServerCertificateName": "mycert", 
            "Expiration": "2018-11-19T18:47:38Z", 
            "Path": "/", 
            "Arn": "arn:aws:iam::************:server-certificate/mycert", 
            "UploadDate": "2015-11-19T19:23:32Z"
        }
    ]
}

(Sprawdziłem, że zaciemniony numer konta jest taki sam jak w błędzie)

Stąd utknąłem. Dlaczego nie mogę zastosować mojego certyfikatu do tego modułu równoważenia obciążenia?


Edytuj Czwartek 19 listopada 11:47:18 PST 2015

Po pewnym czasie wylogowania i wylogowania udało mi się zaktualizować detektory moim certyfikatem SSL. Jednak wydaje się, że nie działa poprawnie. Podczas próby załadowania mojej domeny przekroczono HTTPSlimit czasu żądania. Wygląda na to, że nie można załadować certyfikatu

$ echo | openssl s_client -connect www.example.com:443 2>/dev/null | openssl x509 -noout -subject
unable to load certificate
69457:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/OpenSSL098-52.30.1/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE
Steve Robbins
źródło
1
Certyfikaty są zawsze przechowywane w IAM, więc wygląda na to, że trafiłeś w opóźnienie replikacji IAM lub inny błąd, w którym certyfikaty wydawały się być przechowywane w porządku, ale wtedy nie było ... co pierwotnie powinieneś był pracować. Czy grupa zabezpieczeń ELB jest otwarta na świat dla HTTPS? Jeśli tak, to masz tutaj drugą anomalię i sugerowałbym utworzenie nowego ELB od zera i sprawdzenie, czy zachowuje się on inaczej.
Michael - sqlbot

Odpowiedzi:

30

Ten sam problem napotkałem, próbując utworzyć ELB z konsoli internetowej. Próbowałem utworzyć tam przesłany nowy certyfikat za pośrednictwem GUI i ostatecznie nie udało się z tym samym błędem. Rozwiązałem go, przesyłając pliki certyfikatów osobno przez aws cli. Wyjaśnia to ten dokument - http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ssl-server-cert.html#upload-cert

Prześlij certyfikat, klucz prywatny i łańcuch certyfikatów w ten sposób

aws iam upload-server-certificate --server-certificate-name my-server-cert \
  --certificate-body file://my-certificate.pem --private-key file://my-private-key.pem \
  --certificate-chain file://my-certificate-chain.pem

Następnie przejdź do konsoli internetowej i wybierz opcję „Wybierz istniejący certyfikat z AWS Identity and Access Management (IAM)” i wybierz właśnie przesłaną parę certyfikatów. Po tym będzie dobrze działać.

suryasankar
źródło
1
Miałem ten sam problem. Rozwiązałeś to tak, jak to opisujesz, używając klienta aws zgodnie z sugestią udostępnianego linku. Używając formularza internetowego konsoli IAM do wklejenia klucza, crt i łańcuch NIE działały dla mnie. Zainstalowałem klienta aws na mojej maszynie deweloperskiej, skonfigurowałem go z „konfiguracją aws”, aby dodać poświadczenia, a następnie uruchomiłem polecenie aws iam uplad-server-certificate ...
wojjas
GUI dało mi problemy, CLI nie ... jak zwykle.
Spechal
1
W celu aktualizacji (teraz jest 2017), właśnie mówiłem z obsługą Amazon i jest to wciąż znany problem. Interfejs CLI jest jedynym sposobem na zapewnienie, że proces ten będzie działał poprawnie. -_-
Nicholas Kreidberg
2
W połowie 2017 r. Problem nadal istnieje.
Diogo Melo
2
Koniec stycznia 2018 r. - wciąż i wydanie
Andrew S
17

Błąd wprowadza w błąd. Przesyła certyfikat. Gdy pojawi się ten błąd, wyjdź, a następnie wróć, aby zmienić. Wybierz istniejący certyfikat IAM i kliknij menu rozwijane - powinien pojawić się nowy certyfikat.

użytkownik384640
źródło
To samo mi się przydarzyło. Wystąpił błąd, zakładając, że oznacza to, że certyfikat nie został przesłany, więc spróbowałem ponownie ... i dostałem inny błąd, stwierdzając, że certyfikat już tam był. Wyjście z interfejsu „nowego certyfikatu”, powrót i wybranie certyfikatu, który właśnie przesłałem jako „istniejący” certyfikat, działało dobrze.
coredumperror
1
Dziękuję Ci! To jest takie pomieszane. Nie mogę uwierzyć, że nie naprawili czegoś takiego.
nawa 30.09.17
to jest dokładnie poprawne
shareef
Dzieje się tak nadal w przepływie pracy przesyłania certyfikatu ELB IAM, ale naprawiono to w przepływie pracy przesyłania certyfikatu ALB IAM.
Josip Rodin
5

Miałem ten sam problem, ale na szczęście udało mi się go rozwiązać bez konieczności naciskania CLI. Dostałem ELB aby dodać HTTPS słuchacz przez wklejenie łańcucha certyfikatów w certyfikatu klucza publicznego pola, po samym certyfikacie.

Błąd pojawił się tylko wtedy, gdy łańcuch certyfikatów został wklejony do własnego pola wprowadzania łańcucha certyfikatów w konsoli (oznaczone jako opcjonalne). Nie bardzo wiem, dlaczego to miało znaczenie, ale stworzyło detektora HTTPS na ELB i wszystko było dobrze.

Matthew Long
źródło
To działało dla mnie właśnie teraz z certyfikatem Comodo DV kupionym przez SSLmate. Osobny problem polegał na tym, że dostałem błąd zaraz po kliknięciu ostatniego przycisku „prześlij”, który został naprawiony przez ponowne kliknięcie przycisku po kilku sekundach (opóźnienie propagacji IAM z powodu ewentualnej spójności?)
RichVel
3

Było to spowodowane specjalnym znakiem w nazwie certyfikatu: (kropka) w moim przypadku. Wszystko działało dobrze po usunięciu wszystkich kropek z nazwy certyfikatu

essis
źródło
1
A także usuń „-” myślnik
ysrb
2

Po prostu też to uderzyłem. Próbowałem pięć razy, aby utworzyć nowy ELB i za każdym razem to się nie udawało. Nigdy nie próbowałem wariantu API, ale udało mi się ustawić certyfikat SSL przez

  1. Najpierw tworzenie ELB; następnie
  2. modyfikowanie detektora przez zmianę z HTTP na HTTPS i przesyłanie mojego certyfikatu + klucza + półproduktów.
Ztyx
źródło
1

Napotkałem ten sam problem. W moim przypadku pojawia się błąd „Nie znaleziono certyfikatu serwera dla klucza” podczas przesyłania certyfikatu SSL, ale ostatecznie są one przesyłane i pojawiają się w menu rozwijanym. Nie otrzymuję żadnych błędów podczas przesyłania przez CLI. Kiedy skontaktowałem się z pomocą techniczną AWS, podali mi przyczynę błędu poniżej

Powodem tego jest ostateczna konsekwencja. Przesłane certyfikaty są przechowywane w IAM. Ponieważ IAM ma ogromną bazę danych, przesłany certyfikat musi się rozprzestrzeniać we wszystkich bazach danych. Jeśli nie ma wystarczająco dużo czasu na propagację, ELB, który próbuje pobrać ten certyfikat, nie będzie w stanie go znaleźć w punkcie końcowym, którego dotyczy zapytanie. Stąd wyrzuca „Nie znaleziono certyfikatu serwera dla klucza”. Kiedy w końcu zostanie rozpowszechniony, może później zobaczyć go jako już przesłany certyfikat

Ramadas
źródło
1

Obejrzałem to, przechodząc do menedżera certyfikatów w konsoli aws i przesyłając tam najpierw. Następnie za pomocą kreatora modułu równoważenia obciążenia i wybierając przesłany certyfikat.

użytkownik160004
źródło
nadgodziny przesyłam SSL do AWS i napotykam inny problem. Tym razem zadziałało to w Menedżerze certyfikatów, a potem po prostu użyłem go w EC2 Load Balancer!
user566245,
0

Ten sam problem w przypadku korzystania z interfejsu internetowego AWS: przesłałem prawidłowy certyfikat, poprawny klucz i cały łańcuch, ale dostałem wyżej wspomniany błąd.

Próbowałem załadować certyfikat na inny (testowy) moduł równoważenia obciążenia. Przesyłanie działało, ale status słuchacza mówi: „Nieprawidłowy certyfikat”.

Kiedy ponownie otworzyłem okno dialogowe „Wybierz certyfikat”, nie wybrano żadnego certyfikatu. Ale oczywiście certyfikat został załadowany poprawnie, ponieważ mogłem go wybrać z listy certyfikatów.

Wracając do mojego pierwotnego modułu równoważenia obciążenia, próbowałem przypisać ten przesłany certyfikat, dziwne teraz: nie było go na liście. Podjąłem nową próbę i załadowałem certyfikat i jego klucz, ale pominąłem łańcuch certyfikatów. To zadziałało, więc wiedziałem, że musi to być łańcuch, który nie jest poprawny (to commodo-cert). Ponownie pobrałem łańcuch z oficjalnej strony, załadowałem cały pakiet i zadziałało. Dziwna rzecz: kiedy porównałem oba - uszkodzony i nowy pobrany, wydają się takie same. Te same daty, ten sam serial, taki sam. Ale inny.

Krótko mówiąc: działało to poprzez ponowne pobranie certyfikatów pośrednich.

nr
źródło
0

Miałem ten sam problem i to, co ostatecznie naprawiłem, trafiło do Security Group dla modułu równoważenia obciążenia i upewniło się, że port 443 został otwarty.

Chris DeGroat
źródło
0

Przed utworzeniem klasycznego modułu równoważenia obciążenia należy utworzyć AMI (obraz instancji w produkcji). W tym celu przejdź do ustawień tworzenia modułu równoważenia obciążenia i wykonaj proces ponownie, a następnie dostarczone certyfikaty i wszystko pójdzie dobrze w moim przypadku.

dbarenas
źródło
0

Ominąłem to, nie wypełniając pola opcjonalnego łańcucha certyfikatów .

Danny Schoemann
źródło
0

Miałem ten sam problem, jeśli przesyłałem certyfikat bezpośrednio.

Gdybym korzystał z Menedżera certyfikatów (AWS Certificate Manager - ACM), mogłem przesłać certyfikat. Następnie mogłem po prostu wybrać certyfikat z rozwijanej listy.

flokoe
źródło