Konfigurowanie protokołu TLS dla interfejsu API zarządzania

Domyślnie protokół TLS jest wyłączony w przypadku interfejsu API zarządzania, a dostęp do interfejsu API zarządzania Edge odbywa się przez HTTP przy użyciu adresu IP węzła serwera zarządzania i portu 8080. Na przykład:

http://ms_IP:8080

Możesz też skonfigurować dostęp protokół TLS do interfejsu API zarządzania Google Analytics, aby uzyskać do niego dostęp w tej postaci:

https://ms_IP:8443

W tym przykładzie skonfigurujesz dostęp TLS do korzystania z portu 8443. 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.

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

Oprócz konfiguracji TLS możesz też kontrolować sprawdzanie poprawności hasła (długość i siłę hasła), modyfikując plik management-server.properties.

Sprawdź, czy port TLS jest otwarty

Procedura opisana w tej sekcji konfiguruje protokół TLS do używania portu 8443 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 8443 -j ACCEPT --verbose

Konfigurowanie TLS

Zmodyfikuj plik /opt/apigee/customer/application/management-server.properties, aby kontrolować użycie protokołu TLS w ruchu do i z interfejsu API zarządzania Google Analytics. Jeśli ten plik nie istnieje, utwórz go.

Aby skonfigurować dostęp za pomocą protokołu TLS do interfejsu API zarządzania Google Analytics:

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

    Gdzie keystore.jks to nazwa pliku magazynu kluczy.

  4. Edytuj /opt/apigee/customer/application/management-server.properties, aby ustawić te właściwości. Jeśli ten 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. Informacje o generowaniu zaciemnionego hasła znajdziesz w artykule Konfigurowanie TLS/SSL dla Edge On Premises.

  5. Uruchom ponownie serwer zarządzania Edge za pomocą polecenia:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

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

Konfigurowanie interfejsu Edge pod kątem korzystania z protokołu TLS w celu uzyskiwania dostępu do interfejsu API Edge

W powyższej procedurze zalecamy pozostawienie conf_webserver_http.turn.off=false, aby interfejs Edge mógł nadal wykonywać wywołania interfejsu API Edge przez HTTP.

Aby skonfigurować interfejs Edge tak, aby wykonywał te wywołania tylko przez HTTPS, wykonaj te czynności:

  1. Skonfiguruj dostęp protokołu TLS do interfejsu API zarządzania Google Analytics zgodnie z opisem powyżej.
  2. Po potwierdzeniu, że protokół TLS działa w przypadku interfejsu API zarządzania Google Analytics, zmodyfikuj plik /opt/apigee/customer/application/management-server.properties, aby ustawić tę właściwość:
    conf_webserver_http.turn.off=true
  3. Uruchom ponownie serwer zarządzania Edge, wykonując to polecenie:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart 
  4. Zmodyfikuj plik /opt/apigee/customer/application/ui.properties, aby ustawić 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 adresem certyfikatu 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 powyżej użyto certyfikatu z podpisem własnym (niezalecane w środowisku produkcyjnym), dodaj do pliku ui.properties tę właściwość:
    conf/application.conf+play.ws.ssl.loose.acceptAnyCertificate=true

    W przeciwnym razie interfejs Edge odrzuci certyfikat podpisany samodzielnie.

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

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 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. Jeśli protokół TLS/SSL jest włączony (true), musisz też ustawić właściwości ssl.port i keystore.path.

conf_webserver_http.turn.off=true

Aby włączyć lub wyłączyć http razem z https. Jeśli chcesz używać tylko protokołu HTTPS, pozostaw wartość domyślną true.

conf_webserver_ssl.port=8443

Port TLS/SSL.

Wymagane, gdy włączony jest protokół TLS/SSL (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.path=path

Ścieżka do pliku magazynu kluczy.

Wymagane, gdy włączony jest protokół TLS/SSL (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.password=password

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

conf_webserver_cert.alias=alias

Opcjonalny alias certyfikatu magazynu kluczy

conf_webserver_keymanager.password=password

Jeśli menedżer kluczy ma hasło, wpisz jego zaciemnioną wersję 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 magazynu zaufania. Określ, czy chcesz akceptować wszystkie certyfikaty TLS/SSL (na przykład, aby akceptować niestandardowe typy). Wartość domyślna to false. Podaj ścieżkę do magazynu zaufania i wpisz zaciemnione hasło do magazynu zaufania 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 odkryjesz lukę w zabezpieczeniach szyfru, możesz go tutaj wykluczyć. Poszczególne szyfry oddziel przecinkami.

Wszystkie mechanizmy szyfrowania usunięte za pomocą listy zablokowanych będą miały pierwszeństwo przed mechanizmami szyfrowania uwzględnionymi na liście dozwolonych.

Uwaga: jeśli nie określono listy zablokowanych ani dozwolonych, domyślnie wykluczane są szyfry pasujące do tego wyrażenia regularnego Java.

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

Jeśli jednak określisz listę zablokowanych, ten filtr zostanie zastąpiony i musisz zablokować wszystkie mechanizmy szyfrowania pojedynczo.

Informacje o zestawach mechanizmów szyfrujących i architekturze kryptograficznej znajdziesz w dokumentacji dostawców Oracle dotyczącej architektury kryptograficznej Javy dla JDK 8.

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

Liczby całkowite, które określają:

  • Rozmiar pamięci podręcznej sesji TLS/SSL (w bajtach) na potrzeby przechowywania informacji o sesji dla wielu klientów.
  • Czas trwania sesji TLS/SSL przed przekroczeniem limitu czasu (w milisekundach).