Konfigurowanie protokołu TLS dla interfejsu BaaS API

Edge for Private Cloud w wersji 4.17.05

TLS (Transport Layer Security, którego poprzednik to protokół SSL) to standardowa technologia zabezpieczeń w celu zapewnienia bezpiecznego i szyfrowanego przesyłania wiadomości w środowisku API. Możesz skonfigurować TLS w portalu BaaS API i węzłach stosu BaaS API.

Poniższy obraz przedstawia typowy schemat wdrażania API BaaS z jednym portalem BaaS i 3 węzły stosu BaaS API.

Deweloperzy korzystają z przeglądarki, by wysyłać żądania do portalu. Domyślnie żądania używają protokołu HTTP przez port 9000 węzła portalu.

To wdrożenie obejmuje system równoważenia obciążenia między portalem a węzłami stosu. W tym Portal wysyła żądania HTTP do systemu równoważenia obciążenia, a następnie system równoważenia obciążenia przekierowuje żądania do jednego z węzłów stosu. To jest zalecane wdrożenie w środowisku systemu produkcyjnego.

Opcje konfiguracji TLS

Podczas konfigurowania protokołu TLS dla interfejsu API BaaS masz do wyboru kilka opcji:

  • Skonfiguruj TLS w portalu i w systemie równoważenia obciążenia dla węzłów stosu

    W tej konfiguracji deweloperzy używają protokołu HTTPS, by uzyskać dostęp do portalu, uruchomiony w przeglądarce korzysta z protokołu HTTPS do wysyłania żądań do węzłów stosu przez obciążenie systemu równoważenia obciążenia. System równoważenia obciążenia uzyskuje dostęp do węzłów stosu za pomocą protokołu HTTP.
  • Skonfiguruj TLS w portalu, systemie równoważenia obciążenia i węzłach stosu

    Aby zwiększyć bezpieczeństwo, skonfiguruj system równoważenia obciążenia tak, aby używał TLS do uzyskiwania dostępu do węzłów stosu.
  • Skonfiguruj TLS w portalu i w jednym węźle stosu

    W małym środowisku, na przykład w środowisku testowym lub programistycznym, do dyspozycji masz tylko z jednym węzłem stosu, co oznacza, że nie trzeba uwzględniać systemu równoważenia obciążenia. W tej konfiguracji skonfigurować TLS zarówno w portalu, jak i w węzłach stosu.
  • Skonfiguruj TLS w systemie równoważenia obciążenia dla portalu

    Jedną z opcji niepokazanych powyżej jest użycie systemu równoważenia obciążenia przed węzłem portalu. Pod tym kątem możesz skonfigurować TLS w systemie równoważenia obciążenia, a opcjonalnie w między systemem równoważenia obciążenia a portalem.
.

Sprawdź, czy port TLS jest otwarty

Poniższe procedury konfiguruje TLS na domyślnym porcie portalu 9000 i węźle stosu 8080. W razie potrzeby możesz go jednak zmienić.

Niezależnie od używanego portu musisz się upewnić, że port w węźle jest otwarty. Dla: możesz na przykład otworzyć port 8443 za pomocą tego polecenia:

$ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT --verbose

Konfigurowanie protokołu TLS w stosie BaaS API

Domyślnie protokół TLS jest wyłączony dla stosu BaaS API. Następnie możesz uzyskać dostęp do interfejsu BaaS API przez HTTP przez używając adresu IP lub nazwy DNS węzła stosu i portu 8080. Na przykład:

http://stack_IP:8080

Możesz też skonfigurować dostęp TLS do interfejsu BaaS API, aby mieć do niego dostęp w formularz:

https://stack_IP:8080

W tym przykładzie skonfigurujesz dostęp TLS tak, aby używał portu 8080. Port 8080 nie jest jednak wymagany - możesz skonfigurować stos tak, aby używał innego portu. Jedynym wymaganiem jest, aby zapora sieciowa zezwala na ruch przez określony port.

Stos obsługuje tylko jeden typ żądań (HTTP lub HTTPS) przez jeden port. Dlatego Jeśli skonfigurujesz dostęp HTTPS na porcie 8080, nie będzie można uzyskać dostępu do portu 8080 przez HTTP. Jeśli skonfiguruj stos do używania portu 8443 z HTTPS, wówczas stos przestanie nasłuchiwać na porcie 8080.

Aby skonfigurować dostęp TLS do Stosu, wykonaj poniższe czynności:

  1. Wygeneruj plik JKS magazynu kluczy zawierający certyfikat TLS i klucz prywatny. Więcej zobacz Konfigurowanie TLS/SSL dla Edge On Nieruchomość.
    Uwaga: upewnij się, że hasło do magazynu i klucza jest takie samo.
  2. Skopiuj plik JKS magazynu kluczy do katalogu w węźle Stos, takiego jak /opt/apigee/customer/application. Interfejs „apigee” musi mieć dostęp do katalogu użytkownika.
  3. Zmień własność pliku JKS na „apigee” użytkownik:
    > chown apigee:apigee /opt/apigee/customer/application/keystore.jks

    gdzie keystore.jks to nazwa pliku magazynu kluczy.
  4. Edytuj plik /opt/apigee/customer/application/usergrid.properties do ustawienia następujących właściwości, w tym ścieżki do pliku JKS i hasła oraz magazynowanie kluczy. Jeśli plik nie istnieje, utwórz go:
    tomcat-server_scheme=https
    tomcat-server_secure=true
    tomcat-server_ssl.enabled=true
    tomcat-server_keystore.type=JKS
    tomcat-server_keystore.file=/opt/apigee/customer/application/keystore.jks
    tomcat-server_keystore.password=password
    tomcat-server_keyalias=keystore_alias
    tomcat-server_clientauth.enabled=false
    tomcat-server_ssl.protocols=TLSv1,TLSv1.1,TLSv1.2
    # Domyślnie dostęp TLS korzysta z portu 8080.
    # Użyj tej właściwości, aby określić inny port.
    # port tomcat-server_=8080


    Ostrzeżenie: wartość password musi być zwykłym tekstem. Dlatego chroń usergrid.properties przed nieautoryzowanymi dostęp.

    Użyj parametru tomcat-server_keyalias. do określenia aliasu magazynu kluczy. Alias klucza został ustawiony podczas jego tworzenia. Aby na przykład go ustawić, użyj opcji -alias w poleceniu keytool.

    Użyj parametru tomcat-server_ssl.protocols. aby ustawić protokoły TLS obsługiwane przez Stos. Lista protokołów obsługiwanych przez Java 8: Więcej informacji: http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#jssename.
  5. Skonfiguruj węzeł stosu:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid setup
  6. Uruchom ponownie stos BaaS:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  7. Sprawdź, czy TLS działa, uruchamiając następujące polecenie cURL w węźle Stos za pomocą polecenia HTTPS:
    > curl -k https://localhost:8080/status -v

    Jeśli protokół TLS jest prawidłowo skonfigurowany, powinna pojawić się odpowiedź z informacjami o stanie.

    Jeśli skonfigurowano dostęp TLS przez port inny niż 8080, zmodyfikuj powyższe polecenie, aby użyć właściwy port.
  8. Powtórz te czynności we wszystkich węzłach stosu.
  9. Jeśli przed węzłami stosów znajduje się system równoważenia obciążenia, skonfiguruj system równoważenia obciążenia w celu wysyłania żądań do węzłów stosu przez protokół HTTPS. Wyświetl dokumentację na systemu równoważenia obciążenia.

    Jeśli portal wysyła bezpośrednie żądania do Stosu, skonfiguruj portal tak, aby dostęp do stosu przez HTTPS w sposób opisany w następnej sekcji.
  10. Wykonaj czynności opisane poniżej w sekcji „Konfigurowanie węzłów stosu BaaS API pod kątem protokołu TLS w stosie lub portalu” aby węzeł stosu miał prawidłowe adresy URL TLS podczas generowania konta użytkownika odpowiedzi.

Konfiguruję dostęp do Stosu przez TLS

Portal BaaS działający w przeglądarce działa przez wywołanie interfejsu API w stosie BaaS. Jeśli skonfiguruj stos BaaS tak, aby używał TLS, musisz też skonfigurować portal do wykonywania tych wywołań przez HTTPS.

Instalacja BaaS interfejsu API jest zwykle skonfigurowana tak, aby:

  • Użyj systemu równoważenia obciążenia między portalem a węzłami stosu.

    Skonfiguruj system równoważenia obciążenia tak, aby wysyłał żądania do węzłów stosu przez HTTPS. Zobacz dokumentacji systemu równoważenia obciążenia.

    W tej konfiguracji portal może uzyskać dostęp do systemu równoważenia obciążenia przez HTTP lub HTTPS, w zależności od jak skonfigurować system równoważenia obciążenia. Jeśli system równoważenia obciążenia używa protokołu TLS, wykonaj poniższą procedurę, skonfigurować portal tak, aby wysyłał żądania do systemu równoważenia obciążenia HTTPS.
  • Niech portal będzie bezpośrednio wysyłać żądania do Stosu

    Skonfiguruj portal pod kątem dostępu do stosu przez protokół HTTPS w sposób opisany poniżej.

Wykonaj poniższe czynności, aby skonfigurować portal API BaaS do wykonywania wywołań interfejsu API przez HTTPS:

  1. Skonfiguruj dostęp TLS w stosie BaaS w sposób opisany powyżej lub w systemie równoważenia obciążenia dla Węzły stosu zgodnie z opisem w dokumentacji systemu równoważenia obciążenia.
  2. Edytuj plik /opt/apigee/customer/application/portal.properties aby ustawić tę właściwość. Jeśli plik nie istnieje, utwórz go:
    baas.portal.config.overrideUrl=https://stackIP:port

    Jako wartość tej właściwości podaj adres IP lub nazwę DNS i port węzła stosu interfejsu API w przypadku instalacji z 1 węzłem lub systemu równoważenia obciążenia, jeśli przed nim węzłów stosu BaaS API.
  3. Skonfiguruj węzeł portalu:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal setup
  4. Ponownie uruchom portal poleceniem:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal restart
  5. Jeśli podczas konfigurowania dostępu TLS do stosu użyto certyfikatu podpisanego samodzielnie powyżej, przeglądarka może nie zezwalać na żądania wysyłane z portalu do Stosu. Jeśli zobaczysz komunikat w przeglądarce pojawi się błąd informujący o tym, że dostęp HTTPS do stosu jest niedozwolony, poproś o następujące żądanie Adres URL w przeglądarce i dodaj wyjątek bezpieczeństwa, aby umożliwić dostęp:
    https://stackIP:port/status

    Podaj adres IP lub nazwę DNS i port węzła stosu interfejsu API lub systemu równoważenia obciążenia.

Konfigurowanie protokołu TLS w portalu BaaS API

Domyślnie użytkownicy uzyskują dostęp do portalu, wysyłając niezaszyfrowane żądania HTTP przez port 9000 na Serwer portalu. Możesz skonfigurować portal do szyfrowania danych wysyłanych do i z z portalu.

Domyślnie możesz uzyskać dostęp do portalu przez HTTP, używając adresu IP lub nazwy DNS portalu. węzła i portu 9000. Na przykład:

http://portal_IP:9000

Możesz też skonfigurować dostęp TLS do portalu, by móc go otworzyć na formularz:

https://portal_IP:9443

W tym przykładzie skonfigurujesz dostęp TLS tak, aby używał portu 9443. Port 9443 nie jest jednak wymagany. - możesz skonfigurować portal tak, by używał innego portu.

Portal może obsługiwać tylko 1 typ żądań (HTTP lub HTTPS) przez jeden port. Dlatego Jeśli skonfigurujesz dostęp HTTPS na porcie 9000, nie będzie można uzyskać dostępu do portu 9000 przez HTTP. Jeśli skonfiguruj portal tak, aby używał portu 9443 z protokołem HTTPS, portal przestanie nasłuchiwać na porcie. 9000.

Aby skonfigurować protokół TLS w portalu:

  1. Utwórz plik klucza i plik certyfikatu w formacie PEM.
    Uwaga: sprawdź, czy klucz lub certyfikat nie zawiera hasła ani hasła.
  2. Skopiuj pliki PEM do katalogu w węźle portalu, takiego jak /opt/apigee/customer/application. Interfejs „apigee” musi mieć dostęp do katalogu użytkownika.
  3. Zmień własność plików PEM na „apigee” użytkownik:
    > chown apigee:apigee /opt/apigee/customer/application/*.PEM
  4. Edytuj plik /opt/apigee/customer/application/portal.properties aby ustawić podane niżej właściwości. Jeśli plik nie istnieje, utwórz go:
    baas.portal.ssl=on
    baas.portal.ssl.certificate=/opt/apigee/customer/application/defaultcert.pem
    baas.portal.ssl.key=/opt/apigee/customer/application/defaultkey.pem
    baas.portal.ssl.protocols=TLSv1 TLSv1.1 TLSv1.2
    # Domyślnie dostęp TLS korzysta z portu 9000.
    # Użyj tej właściwości, aby określić inny port.
    # baas.portal.listen=9000


    Użyj baas.portal.ssl.protocols. aby ustawić protokoły TLS obsługiwane przez portal. Listę obsługiwanych protokołów znajdziesz w lista nazw protokołów SSL zdefiniowanych przez Nginx: http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_protocols.
  5. Skonfiguruj węzeł portalu:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal setup
  6. Ponownie uruchom portal:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal restart
  7. Wykonaj czynności opisane poniżej w sekcji „Konfigurowanie węzłów stosu BaaS API pod kątem protokołu TLS w stosie lub portalu” , by sprawdzić, czy węzeł stosu ma prawidłowy adres URL TLS portalu.

Skonfiguruj węzły BaaS API pod kątem protokołu TLS w Stos lub portal

Jeśli umieścisz system równoważenia obciążenia przed węzłami stosu lub portalu albo jeśli włączysz protokół TLS bezpośrednio w węźle portalu lub stosu, musisz skonfigurować węzły, podając prawidłowe adresy URL, dostęp do stosu i portalu. Na przykład węzły stosu wymagają tych informacji, gdy:

  • Umieszczanie adresu URL w odpowiedziach w żądaniach do interfejsu BaaS API.
  • dodawania linków w szablonach e-maili podczas resetowania hasła lub wysyłania innych wiadomości, powiadomienia.
  • Przekierowywanie użytkowników na strony konkretnych portali.

Jeśli używasz systemu równoważenia obciążenia przed węzłami stosu lub konfigurujesz TLS w węźle Stos, ustaw tę właściwość w /opt/apigee/customer/application/usergrid.properties:

usergrid-deployment_usergrid.api.url.base=http://localhost:8080

Zastąp ciąg http://localhost:8080 adresem URL wczytywania. systemu równoważenia obciążenia. Jeśli system równoważenia obciążenia jest skonfigurowany do używania protokołu TLS, użyj protokołu HTTPS. Tylko Ty musisz uwzględnić port, jeśli używasz portu niestandardowego, czyli innego niż port 80 w przypadku HTTP i port 443 w przypadku HTTPS.

Musisz też ustawić tę właściwość w /opt/apigee/customer/application/portal.properties , jeśli: używasz systemu równoważenia obciążenia przed węzłami stosu:

baas.portal.config.overrideUrl=http://localhost:8080

Zastąp http://localhost:8080 adresem URL systemu równoważenia obciążenia dla stosu.

Jeśli używasz systemu równoważenia obciążenia przed węzłem portalu lub skonfigurujesz TLS w węźle Stos, ustaw te właściwości w pliku usergrid.properties:

usergrid-deployment_portal.url=http://localhost:9000

Zastąp http://localhost:9000 adresem URL systemu równoważenia obciążenia. Jeśli system równoważenia obciążenia jest skonfigurowany do używania protokołu TLS, użyj protokołu HTTPS. Ty uwzględniaj go tylko wtedy, gdy korzystasz z portu niestandardowego, czyli innego niż port 80 w przypadku HTTP i 443 w przypadku HTTPS.

Po wprowadzeniu zmian w pliku usergrid.properties:

  1. Skonfiguruj węzeł stosu:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid setup
  2. Uruchom ponownie stos BaaS:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  3. Jeśli zmodyfikowano plik portal.properties, skonfiguruj węzeł portalu:
    /opt/apigee/apigee-service/bin/apigee-service baas-portal konfiguracja
  4. Uruchom ponownie portal BaaS:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal restart