Konfigurowanie protokołu TLS w interfejsie zarządzania

Domyślnie uzyskujesz dostęp do interfejsu Edge 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 postaci:

https://ms_IP:9443

W tym przykładzie skonfigurujesz dostęp TLS tak, aby używał portu 9443. Ten numer portu nie jest jednak 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 pozwala skonfigurować protokół TLS tak, aby używał portu 9443 na serwerze zarządzania. Niezależnie od używanego portu musisz się upewnić, że port na serwerze zarządzania jest otwarty. 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 czynności opisane poniżej:

  1. Wygeneruj plik magazynu kluczy JKS 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 w przypadku usługi 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łasność pliku na „apigee”.

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

    Te ustawienia znajdziesz w /opt/apigee/etc/edge-ui.d/SSL.sh.

Konfigurowanie TLS za pomocą pliku konfiguracji

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

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

HTTPSPORT=9443
DISABLE_HTTP=y
# Set type to PKCS12 if you are using a PKCS12 keystore
KEY_ALGO=JKS
KEY_FILE_PATH=/opt/apigee/customer/application/mykeystore.jks
KEY_PASS=clearTextKeystorePWord

Zapisz plik w lokalnym katalogu pod dowolną nazwą. Następnie skonfiguruj TLS za pomocą tego polecenia:

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

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

Korzystanie z klucza PKCS12 w systemach operacyjnych zgodnych z FIPS

Jeśli używasz Edge for Private Cloud w systemie operacyjnym obsługującym FIPS, musisz użyć magazynu kluczy PKCS12. Za pomocą standardowych poleceń OpenSSL możesz wygenerować magazyn kluczy PKCS12. Jeśli używasz magazynu kluczy PKCS12, ustaw KEY_ALGO=PKCS12 w pliku konfiguracji.

Konfigurowanie interfejsu Edge, gdy szyfrowanie TLS kończy się w systemie równoważenia obciążenia

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

Dodatkowa konfiguracja jest wymagana, gdy interfejs Edge wysyła e-maile z prośbą o ustawienie hasła po utworzeniu użytkownika lub gdy użytkownik poprosi o zresetowanie hasła. Ten e-mail zawiera adres URL, który użytkownik wybiera, aby ustawić lub zresetować hasło. Jeśli interfejs Edge nie jest skonfigurowany do używania 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, który używa HTTPS.

Aby skonfigurować system równoważenia obciążenia, ustaw ten nagłówek w przypadku żądań 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 obiekcie ui.properties:
    conf/application.conf+trustxforwarded=true
  3. Zapisz zmiany w pliku 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 użytkownika Edge obsługuje opcjonalne właściwości konfiguracji TLS, które umożliwiają ustawienie tych opcji:

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

Te parametry opcjonalne są dostępne tylko wtedy, gdy ustawisz tę właściwość konfiguracji w pliku konfiguracji zgodnie z opisem w artykule Konfigurowanie TLS za pomocą pliku konfiguracji:

TLS_CONFIGURE=y

Właściwości te zostały opisane w tej tabeli:

Właściwość Opis
TLS_PROTOCOL Określa domyślny protokół TLS dla interfejsu użytkownika 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 w postaci tablicy rozdzielanej przecinkami. Na przykład:

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

Pamiętaj, że musisz zmienić znaczenie znaku „.

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

TLS_DISABLED_ALGO

Określa wyłączone zestawy szyfrów i może być używany do zapobiegania używaniu małych rozmiarów kluczy do uzgadniania TLS. Nie ma wartości domyślnej.

Wartości przekazywane do elementu TLS_DISABLED_ALGO odpowiadają dozwolonym wartościom elementu jdk.tls.disabledAlgorithms, jak opisano tutaj. Musisz jednak użyć symbolu TLS_DISABLED_ALGO, aby ustawić spacje:

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

TLS_ENABLED_CIPHERS

Określa listę dostępnych szyfrów TLS jako tablicę rozdzieloną przecinkami. Na przykład:

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

Pamiętaj, że musisz zmienić znaczenie znaku „.

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

"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 szyfrów znajdziesz tutaj.

Wyłączanie protokołów TLS

Aby wyłączyć protokoły TLS, musisz zmodyfikować plik konfiguracyjny zgodnie z opisem w sekcji Konfigurowanie protokołu TLS za pomocą pliku konfiguracji w następujący sposób:

  1. Otwórz plik konfiguracyjny w edytorze.
  2. Aby wyłączyć pojedynczy protokół TLS, np. TLSv1.0, dodaj do pliku konfiguracji następujące ustawienie:
    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1"

    Aby wyłączyć wiele protokołów, np. TLS 1.0 i TLS 1.1, dodaj do pliku konfiguracyjnego następujące ustawienia:

    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 konfiguracyjnego.

  5. Uruchom ponownie interfejs Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Używanie bezpiecznych plików cookie

Apigee Edge for Private Cloud obsługuje dodawanie flagi secure do nagłówka Set-Cookie w odpowiedziach z interfejsu Edge. Jeśli ta flaga jest obecna, plik cookie może być wysyłany tylko przez kanały z włączoną obsługą TLS. Jeśli nie ma takiej informacji, plik cookie może być wysyłany przez dowolny kanał, niezależnie od tego, czy jest bezpieczny.

Pliki cookie bez flagi secure mogą umożliwiać atakującemu 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, używając 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 w interfejsie 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