5

Po powiązaniu certyfikatu AWS z moją aplikacją Elastic Beanstalk i odwiedzeniu domeny przy użyciu https, otrzymuję komunikat "Witryna jest niedostępna, witryna mydomain.com odmówiła połączenia. " Mogę odwiedzić witrynę za pomocą http.Certyfikat AWS SSL z Elastic Beanstalk: Witryna HTTPS jest nieosiągalna

Utworzyłem certyfikat bezpieczeństwa z ACM AWS. Dodałem moją nazwę domeny, example.com wraz z dodatkowymi nazwami, które były subdomenami do certyfikatu. W moim app środowisku „wyważania Ładowanie” SEKCJA I to ustawić:

enter image description here

I skonfigurować SecurityGroup nazwie awseb-e-abc123-stack-* dla mojego środowiska, co następuje: enter image description here

Jest jeszcze inna grupa zabezpieczeń o nazwie awseb-e-abc123-stack-AWSEBLoadBalancerSecurityGroup-*, który następująco. Ma taką samą nazwę znacznika jako powyższej grupy, która jest taka sama jak moim imieniu środowiska:

enter image description here

Wydaje się jednak, że wpisy z „AWSEBLoadBalancerSecurityGroup” grupy zabezpieczeń nic nie robi, jak usuwanie wszystkich wpisy nadal pozwalają na ruch HTTP.

W .elasticbeanstalk\securelistener.config, mam następujący

option_settings: 
    aws:elb:listener:443: 
    SSLCertificateId: <my certificate's ARN> 
    ListenerProtocol: HTTPS 
    InstancePort: 80 

Wydaje się jednak, jeśli dodam błąd składni w tym pliku, rozmieszczenie nadal udaje.

Oto wyjściowy curl -vL https://<my domain>:

* Rebuilt URL to: https://<my domain>/ 
* Trying <my elastic IP>... 
* connect to <my elastic IP> port 443 failed: Connection refused 
* Failed to connect to <my domain> port 443: Connection refused 
* Closing connection 0 
curl: (7) Failed to connect to <my domain> port 443: Connection refused 

kiedyś osobną nazwę domeny rejestru ustawienia mojego nazwę domeny i skonfigurować rekordy DNS adres IP mojego domeny równą mojej Elastic OD.

[edytuj]

ja już wspomniano, że zmiana zasad grupy zabezpieczeń równoważenia obciążenia nie robi nic. Wynika to z tego, że moja grupa zabezpieczeń instancji EC2 wskazywała na grupę zabezpieczeń instancji, a nie na grupę zabezpieczeń modułu równoważenia obciążenia. Kiedy skierowałem grupę bezpieczeństwa EC2 do grupy zabezpieczeń load balancera, reguły grupy bezpieczeństwa są execercized. Zweryfikowałem to, usuwając wszystkie reguły z grupy zabezpieczeń load balancer i widząc, że nie są akceptowane żadne żądania. Jeśli jednak dodaję reguły HTTP i HTTPS do grupy zabezpieczeń równoważenia obciążenia, ale usunę wszystkie reguły z grupy zabezpieczeń instancji, wszystkie żądania HTTP będą wykonywane. To NIE jest oczekiwane zachowanie, ponieważ moduł równoważenia obciążenia ma przekazywać ruch do instancji. Wygląda na to, że (1) instancje i grupy zabezpieczeń równoważenia obciążenia nie są w ogóle powiązane z instancją i mechanizmem równoważenia obciążenia oraz (2) żaden ruch nie idzie do systemu równoważenia obciążenia.

Czy jest coś jeszcze, czego mi brakuje?

[edit 2]

I misread komentarz gkrizek użytkownika. Jeśli korzystam z publicznego DNS systemu równoważenia obciążenia, mogę połączyć się za pomocą protokołu HTTP lub HTTPS. Jestem w stanie połączyć się z obiema wersjami za pomocą telnetu. Dlatego zamiast tworzyć rekord A, który ustawił testdomain.com na mój Elastic IP, utworzyłem zestaw rekordów CNAME sub.testdomain.com do load balancera.Teraz mogę przeglądać zarówno http://sub.testdomain.com i https://sub.testdoamin.com. Dwa pytania:

  • Czy można używać publicznego serwera DNS load balancer w rekordzie CNAME? Nie mogę użyć adresu URL * .elasticbeanstalk.com, ponieważ może on ulec zmianie, więc zastanawiam się, czy ta sama sytuacja ma zastosowanie tutaj
  • Jak mogę zabezpieczyć https://testdomain.com (bez poddomeny). Wygląda na to, że w przypadku tej metody niemożliwe jest uzyskanie https://testdomain.com, ponieważ nie mogę utworzyć rekordu A z nazwą domeny.
+0

Czy wypowiedzenia https na system równoważenia obciążenia i kontynuować żądanie za pomocą http? Co stanie się, gdy wykonasz polecenie zwijania, takie jak 'curl -vL --insecure $ url'? –

+0

Czy domyślnie AWS nie wyłącza HTTPS w module równoważenia obciążenia? Jak mogę ustalić, czy tak jest? – user2233706

+0

Nie jestem pewien, czy istnieje wartość domyślna (jeśli byłaby prawdopodobnie zakończona). Możesz sprawdzić, upewniając się, że ruch trafiający do instancji jest nieszyfrowany (czyli instancja może zrozumieć, co odbiera) lub sprawdzając, czy moduł równoważenia obciążenia wysyła informacje do instancji jako "http", a nie "https" . –

Odpowiedz

4

Problem polega na tym, że musisz utworzyć rekord CNAME w swojej domenie i użyć adresu DNS systemu równoważenia obciążenia jako adresu. Jeśli korzystasz z elastycznego adresu IP, żądania nie będą przesyłane do modułu równoważenia obciążenia.

Aby odpowiedzieć na moje ostatnie pytania:

  • AWS says to jest OK
  • To nie jest możliwe, dopóki AWS pozwala na przypisanie elastycznego IP do równoważenia obciążenia