Konfigurowanie protokołu TLS w interfejsie zarządzania

Domyślnie dostęp do interfejsu Edge UI uzyskujesz przez HTTP, używając adresu IP węzła serwera zarządzania i portu 9000. Na przykład:

http://ms_IP:9000

Możesz też skonfigurować dostęp TLS do interfejsu Edge, aby uzyskać do niego dostęp w tej postaci:

https://ms_IP:9443

W tym przykładzie skonfigurujesz dostęp TLS do korzystania z portu 9443. Jednak ten numer portu nie jest wymagany przez Edge – możesz skonfigurować serwer zarządzania tak, aby używał innych wartości portów. Jedynym wymaganiem jest to, aby zapora sieciowa zezwalała na ruch przez określony port.

Sprawdź, czy port TLS jest otwarty

Procedura opisana w tej sekcji konfiguruje protokół TLS do używania portu 9443 na serwerze zarządzania. Niezależnie od używanego portu musisz upewnić się, że jest on otwarty na serwerze zarządzania. Możesz go otworzyć na przykład za pomocą tego polecenia:

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

Konfigurowanie TLS

Aby skonfigurować dostęp TLS do interfejsu zarządzania, wykonaj te czynności:

  1. Wygeneruj plik JKS magazynu kluczy zawierający certyfikat TLS i klucz prywatny, a następnie skopiuj go do węzła serwera zarządzania. Więcej informacji znajdziesz w artykule Konfigurowanie TLS/SSL dla Edge On Premises.
  2. Aby skonfigurować TLS, uruchom to polecenie:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
  3. Wpisz numer portu HTTPS, na przykład 9443.
  4. Określ, czy chcesz wyłączyć dostęp HTTP do interfejsu zarządzania. Domyślnie interfejs zarządzania jest dostępny przez HTTP na porcie 9000.
  5. Wpisz algorytm magazynu kluczy. Wartość domyślna to JKS.
  6. Wpisz ścieżkę bezwzględną do pliku JKS magazynu kluczy.

    Skrypt kopiuje plik do katalogu /opt/apigee/customer/conf w węźle serwera zarządzania i zmienia właściciela pliku na „apigee”.

  7. Wpisz hasło magazynu kluczy w postaci zwykłego tekstu.
  8. Następnie skrypt ponownie uruchamia interfejs zarządzania Edge. Po ponownym uruchomieniu interfejs zarządzania obsługuje dostęp przez TLS.

    Te ustawienia możesz zobaczyć w /opt/apigee/etc/edge-ui.d/SSL.sh.

Konfigurowanie TLS za pomocą pliku konfiguracji

Zamiast powyższej procedury możesz przekazać plik konfiguracji do polecenia w kroku 2. Musisz użyć tej metody, jeśli chcesz ustawić opcjonalne właściwości TLS.

Aby użyć pliku konfiguracji, utwórz nowy plik i dodaj te właściwości:

HTTPSPORT=9443
DISABLE_HTTP=y
KEY_ALGO=JKS
KEY_FILE_PATH=/opt/apigee/customer/application/mykeystore.jks
KEY_PASS=clearTextKeystorePWord

Zapisz plik w katalogu lokalnym pod dowolną nazwą. Następnie użyj tego polecenia, aby skonfigurować TLS:

/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

gdzie configFile to pełna ścieżka do zapisanego pliku.

Konfigurowanie interfejsu Edge, gdy protokół TLS kończy się na systemie równoważenia obciążenia

Jeśli masz system równoważenia obciążenia, który przekazuje żądania do interfejsu Edge, możesz zakończyć połączenie TLS w systemie równoważenia obciążenia, a następnie przekazywać żądania do interfejsu Edge przez HTTP. Ta konfiguracja jest obsługiwana, ale musisz odpowiednio skonfigurować system równoważenia obciążenia i interfejs Edge.

Dodatkowa konfiguracja jest wymagana, gdy interfejs Edge wysyła użytkownikom e-maile z prośbą o ustawienie hasła po utworzeniu konta lub gdy użytkownik prosi o zresetowanie utraconego hasła. Ten e-mail zawiera adres URL, który użytkownik wybiera, aby ustawić lub zresetować hasło. Domyślnie, jeśli interfejs Edge nie jest skonfigurowany do używania protokołu TLS, adres URL w wygenerowanym e-mailu używa protokołu HTTP, a nie HTTPS. Musisz skonfigurować system równoważenia obciążenia i interfejs Edge, aby generować adres e-mail korzystający z HTTPS.

Aby skonfigurować system równoważenia obciążenia, upewnij się, że ustawia on ten nagłówek w żądaniach przekazywanych do interfejsu Edge:

X-Forwarded-Proto: https

Aby skonfigurować interfejs Edge:

  1. Otwórz plik /opt/apigee/customer/application/ui.properties w edytorze. Jeśli plik nie istnieje, utwórz go:
    vi /opt/apigee/customer/application/ui.properties
  2. Ustaw tę właściwość w pliku ui.properties:
    conf/application.conf+trustxforwarded=true
  3. Zapisz zmiany w ui.properties.
  4. Ponownie uruchom interfejs Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Ustawianie opcjonalnych właściwości TLS

Interfejs Edge obsługuje opcjonalne właściwości konfiguracji TLS, których możesz użyć do ustawienia tych elementów:

  • Domyślny protokół TLS
  • Lista obsługiwanych protokołów TLS
  • Obsługiwane algorytmy TLS
  • Obsługiwane mechanizmy szyfrowania TLS

Te opcjonalne parametry są dostępne tylko wtedy, gdy w pliku konfiguracji ustawisz tę właściwość konfiguracji, zgodnie z opisem w artykule Używanie pliku konfiguracji do konfigurowania TLS:

TLS_CONFIGURE=y

W tabeli poniżej opisujemy te właściwości:

Właściwość Opis
TLS_PROTOCOL Określa domyślny protokół TLS dla interfejsu Edge. Domyślnie jest to TLS 1.2. Prawidłowe wartości to TLSv1.2, TLSv1.1, TLSv1.
TLS_ENABLED_PROTOCOL

Definiuje listę włączonych protokołów jako tablicę rozdzielaną przecinkami. Na przykład:

TLS_ENABLED_PROTOCOL=[\"TLSv1.2\", \"TLSv1.1\", \"TLSv1\"]

Zwróć uwagę, że musisz użyć znaku ucieczki przed znakiem „.

Domyślnie wszystkie protokoły są włączone.

TLS_DISABLED_ALGO

Definiuje wyłączone zestawy szyfrów i może być też używane do zapobiegania używaniu małych rozmiarów kluczy do uzgadniania połączenia TLS. Nie ma wartości domyślnej.

Wartości przekazywane do TLS_DISABLED_ALGO odpowiadają dozwolonym wartościom jdk.tls.disabledAlgorithms, jak opisano tutaj. Podczas ustawiania TLS_DISABLED_ALGO musisz jednak używać znaków ucieczki dla spacji:

TLS_DISABLED_ALGO=EC\ keySize\ <\ 160,RSA\ keySize\ <\ 2048
TLS_ENABLED_CIPHERS

Definiuje listę dostępnych szyfrów TLS jako tablicę rozdzielaną przecinkami. Na przykład:

TLS_ENABLED_CIPHERS=[\"TLS_DHE_RSA_WITH_AES_128_CBC_SHA\",
\"TLS_DHE_DSS_WITH_AES_128_CBC_SHA\"]

Zwróć uwagę, że musisz użyć znaku ucieczki przed znakiem „.

Domyślna lista włączonych mechanizmów szyfrowania:

"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_RC4_128_SHA",
"SSL_RSA_WITH_RC4_128_MD5",
"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"

Listę dostępnych mechanizmów szyfrowania znajdziesz tutaj.

Wyłączanie protokołów TLS

Aby wyłączyć protokoły TLS, musisz zmodyfikować plik konfiguracji opisany w sekcji Konfigurowanie TLS przy użyciu pliku konfiguracji w następujący sposób:

  1. Otwórz plik konfiguracji w edytorze.
  2. Aby wyłączyć pojedynczy protokół TLS, na przykład TLSv1.0, dodaj do pliku konfiguracji ten wiersz:
    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1"

    Aby wyłączyć wiele protokołów, na przykład TLSv1.0 i TLSv1.1, dodaj do pliku konfiguracji te informacje:

    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1, tlsv1.1"
  3. Zapisz zmiany w pliku konfiguracji.
  4. Aby skonfigurować TLS, uruchom to polecenie:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

    gdzie configFile to pełna ścieżka do pliku konfiguracji.

  5. Ponownie uruchom interfejs Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Używanie bezpiecznych plików cookie

Apigee Edge dla chmury prywatnej obsługuje dodawanie flagi secure do nagłówka Set-Cookie w przypadku odpowiedzi z interfejsu Edge. Jeśli ta flaga jest obecna, plik cookie może być wysyłany tylko przez kanały z włączonym protokołem TLS. Jeśli go nie ma, plik cookie może zostać wysłany dowolnym kanałem, niezależnie od tego, czy jest on bezpieczny.

Pliki cookie bez flagi secure mogą potencjalnie umożliwić hakerowi przechwycenie i ponowne użycie pliku cookie lub przejęcie aktywnej sesji. Dlatego zalecamy włączenie tego ustawienia.

Aby ustawić flagę secure dla plików cookie interfejsu Edge:

  1. Otwórz ten plik w edytorze tekstu:
    /opt/apigee/customer/application/ui.properties

    Jeśli plik nie istnieje, utwórz go.

  2. W pliku ui.properties ustaw właściwość conf_application_session.secure na true, jak w tym przykładzie:
    conf_application_session.secure=true
  3. Zapisz zmiany.
  4. Uruchom ponownie interfejs Edge za pomocą narzędzia apigee-serice, jak pokazano w tym przykładzie:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Aby sprawdzić, czy zmiana działa, sprawdź nagłówki odpowiedzi z interfejsu Edge za pomocą narzędzia takiego jak curl, na przykład:

curl -i -v https://edge_UI_URL

Nagłówek powinien zawierać wiersz podobny do tego:

Set-Cookie: secure; ...

Wyłączanie TLS w interfejsie Edge

Aby wyłączyć TLS w interfejsie Edge, użyj tego polecenia:

/opt/apigee/apigee-service/bin/apigee-service edge-ui disable-ssl