Konfigurowanie protokołu TLS dla interfejsu API zarządzania

Domyślnie interfejs Management API obsługuje wyłączone szyfrowanie TLS. Do interfejsu Management API w usłudze Edge uzyskujesz dostęp przez HTTP, korzystając z adresu IP węzła serwera zarządzania i portu 8080. Na przykład:

http://ms_IP:8080

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

https://ms_IP:8443

W tym przykładzie skonfigurujesz dostęp TLS tak, aby używał portu 8443. Ten numer portu nie jest jednak wymagany przez Edge – możesz skonfigurować serwer zarządzający tak, aby używał innych wartości portu. Jedynym wymaganiem jest to, aby zapora sieciowa zezwalała na ruch przez określony port.

Aby zapewnić szyfrowanie ruchu do i z interfejsu API zarządzania, skonfiguruj ustawienia w pliku /opt/apigee/customer/application/management-server.properties.

Oprócz konfiguracji TLS możesz też kontrolować weryfikację hasła (długość i siłę hasła) przez zmodyfikowanie pliku management-server.properties.

Sprawdź, czy port TLS jest otwarty

Procedura opisana w tej sekcji konfiguruje TLS do korzystania z portu 8443 na serwerze zarządzania. Niezależnie od tego, którego portu używasz, musisz się upewnić, że jest on otwarty na serwerze zarządzania. Możesz na przykład otworzyć je za pomocą tego polecenia:

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

Konfigurowanie TLS

Zmień plik /opt/apigee/customer/application/management-server.properties, aby kontrolować używanie TLS w przypadku ruchu do i z interfejsu API zarządzania. Jeśli ten plik nie istnieje, i ją utworzyć.

Aby skonfigurować dostęp TLS do interfejsu API zarządzania:

  1. Wygeneruj plik JKS magazynu kluczy zawierający certyfikat TLS i klucz prywatny. Więcej informacji znajdziesz w artykule Konfigurowanie TLS/SSL w przypadku usługi Edge On Premises.
  2. Skopiuj plik klucza JKS do katalogu na węźle serwera zarządzania, na przykład /opt/apigee/customer/application.
  3. Zmień własność pliku JKS na „apigee” użytkownik:
    chown apigee:apigee keystore.jks

    Gdzie keystore.jks to nazwa pliku klucza.

  4. Aby ustawić te właściwości, kliknij Edytuj /opt/apigee/customer/application/management-server.properties. Jeśli plik nie istnieje, utwórz go:
    conf_webserver_ssl.enabled=true
    # Leave conf_webserver_http.turn.off set to false
    # because many Edge internal calls use HTTP.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # Enter the obfuscated keystore password below.
    conf_webserver_keystore.password=OBF:obfuscatedPassword

    Gdzie keyStore.jks to plik magazynu kluczy, a obfuscatedPassword to zaciemnione hasło do magazynu kluczy. Zobacz Konfigurowanie TLS/SSL dla usługi Edge On dla domeny jak wygenerować zaciemnione hasło.

  5. Ponownie uruchom serwer zarządzania brzegiem serwera za pomocą polecenia:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

Interfejs zarządzania API obsługuje teraz dostęp przez protokół TLS.

Konfigurowanie interfejsu użytkownika Edge, aby używał protokołu TLS do uzyskiwania dostępu do interfejsu Edge API

W ramach opisanej powyżej procedury firma Apigee zaleca pozostawienie wartości conf_webserver_http.turn.off=false, aby interfejs użytkownika Edge mógł nadal wywoływać interfejs Edge API przez HTTP.

Wykonaj poniższe czynności, aby skonfigurować interfejs Edge, aby wykonywać te wywołania tylko przez HTTPS:

  1. Skonfiguruj dostęp TLS do interfejsu API zarządzania w sposób opisany powyżej.
  2. Gdy potwierdzisz, że protokół TLS działa dla interfejsu API zarządzania, wprowadź zmiany /opt/apigee/customer/application/management-server.properties do ustaw tę właściwość:
    conf_webserver_http.turn.off=true
  3. Ponownie uruchom serwer zarządzania brzegiem, wykonując to polecenie:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart 
  4. Edytuj /opt/apigee/customer/application/ui.properties ustaw tę właściwość interfejsu Edge:
    conf_apigee_apigee.mgmt.baseurl="https://FQ_domain_name:port/v1"

    Gdzie FQ_domain_name to pełna nazwa domeny, zgodnie z certyfikatem. adresu serwera zarządzania, a port to port określony powyżej przez conf_webserver_ssl.port

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

  5. Tylko jeśli podczas konfigurowania dostępu TLS do interfejsu API zarządzania użyjesz samodzielnie podpisanego certyfikatu (nie zalecane w środowisku produkcyjnym), dodaj do ui.properties tę właściwość:
    conf/application.conf+play.ws.ssl.loose.acceptAnyCertificate=true

    W przeciwnym razie interfejs Edge odrzuci samodzielnie podpisany certyfikat.

  6. Uruchom ponownie interfejs użytkownika Edge, wykonując to polecenie:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Korzystanie z klucza PKCS12 w systemach operacyjnych zgodnych z FIPS

Jeśli używasz Edge dla Private Cloud w systemie operacyjnym z obsługą FIPS, musisz użyć magazynu kluczy PKCS12. Jest to wymagane ze względu na normy FIPS. Oprócz innych standardowych konfiguracji wymienionych w tym artykule dodaj do pliku management-server.properties tę konfigurację:

conf/webserver.properties+keystore.type=PKCS12

Pamiętaj o wprowadzeniu tej zmiany, jeśli środowisko z obsługą FIPS jest zgodne z wymaganymi standardami szyfrowania.

Właściwości TLS serwera zarządzania

W tabeli poniżej znajdziesz wszystkie właściwości TLS/SSL, które możesz ustawić w elementach management-server.properties:

Właściwości Opis

conf_webserver_http.port=8080

Wartość domyślna to 8080.

conf_webserver_ssl.enabled=false

Aby włączyć lub wyłączyć TLS/SSL: Gdy protokół TLS/SSL jest włączony (prawda), musisz też ustawić atrybut ssl.port i keystore.path.

conf_webserver_http.turn.off=true

Aby włączyć lub wyłączyć protokół HTTP razem z https. Jeśli chcesz używać tylko protokołu HTTPS, pozostaw pole domyślna wartość to true.

conf_webserver_ssl.port=8443

Port TLS/SSL.

Wymagane, gdy włączone jest szyfrowanie TLS/SSL (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.path=path

Ścieżka do pliku magazynu kluczy.

Wymagane, gdy włączono TLS/SSL (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.password=password

Użyj zaciemnionego hasła w formacie OBF:xxxxxxxxxx

conf_webserver_cert.alias=alias

Opcjonalny alias certyfikatu magazynu kluczy

conf_webserver_keymanager.password=password

Jeśli Twój menedżer kluczy ma hasło, wpisz zaciemnioną wersję hasła w tym formacie:

OBF:xxxxxxxxxx

conf_webserver_trust.all=[false | true]

conf_webserver_trust.store.path=path

conf_webserver_trust.store.password=password

Skonfiguruj ustawienia zaufanych magazynów danych. Określ, czy chcesz akceptować wszystkie certyfikaty TLS/SSL (np. aby akceptować typy niestandardowe). Wartość domyślna to false. Podaj ścieżkę do magazynu zaufania i wpisz zaciemnione hasło tego magazynu w tym formacie:

OBF:xxxxxxxxxx

conf_http_HTTPTransport.ssl.cipher.suites.blacklist=CIPHER_SUITE_1, CIPHER_SUITE_2

conf_http_HTTPTransport.ssl.cipher.suites.whitelist=

Wskaż zestawy szyfrów, które chcesz uwzględnić lub wykluczyć. Jeśli na przykład wykryjesz lukę w zabezpieczeniach w szyfrze, możesz go wykluczyć. Poszczególne szyfry oddziel przecinkami.

Wszystkie szyfry usunięte z czarnej listy mają pierwszeństwo przed szyframi dodanymi do białej listy.

Uwaga: domyślnie, jeśli nie określono żadnej czarnej ani białej listy, mechanizmy szyfrowania poniższe wyrażenie regularne w Javie są domyślnie wykluczone.

^.*_(MD5|SHA|SHA1)$
^TLS_RSA_.*$
^SSL_.*$
^.*_NULL_.*$
^.*_anon_.*$

Jeśli jednak podasz listę zablokowanych szyfrów, filtr zostanie zastąpiony i musisz dodać do listy zablokowanych wszystkie szyfry z osobna.

Informacje o zestawach szyfrów i architekturze kryptograficznej znajdziesz w dokumentacji architektury kryptograficznej Javy dla JDK 8 firmy Oracle.

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

Liczba całkowita określająca:

  • Rozmiar pamięci podręcznej sesji TLS/SSL (w bajtach), która służy do przechowywania informacji o sesji dla wielu klientów.
  • Czas trwania sesji TLS/SSL (w milisekundach).