Konfigurowanie protokołu TLS dla interfejsu API zarządzania

Edge for Private Cloud wer. 4.17.05

Domyślnie protokół TLS jest wyłączony w interfejsie API zarządzania. Dostęp do interfejsu Edge Management API uzyskuje 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 TLS do interfejsu API zarządzania w taki sposób, aby móc uzyskać do niego dostęp w tej formie:

https://ms_IP:8443

W tym przykładzie skonfigurujesz dostęp TLS tak, aby używać portu 8443. Jednak ten numer portu nie jest wymagany przez Edge. Możesz skonfigurować serwer zarządzania, 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, 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), modyfikując plik management-server.properties.

Upewnij się, że port TLS jest otwarty

Procedura podana w tej sekcji pozwala skonfigurować protokół TLS do używania portu 8443 na serwerze zarządzania. Niezależnie od używanego portu musisz się upewnić, że port na serwerze zarządzania musi być otwarty. Aby go otworzyć, możesz na przykład użyć tego polecenia:

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

Konfigurowanie TLS

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

Aby skonfigurować dostęp przy użyciu protokołu TLS do interfejsu API zarządzania, wykonaj czynności opisane poniżej:

  1. Wygeneruj plik JKS magazynu kluczy zawierający certyfikat TLS i klucz prywatny. Więcej informacji znajdziesz w artykule o konfigurowaniu TLS/SSL w środowisku Edge On.
  2. Skopiuj plik JKS magazynu kluczy do katalogu w węźle serwera zarządzania, np. /opt/apigee/customer/application.
  3. Zmień własność pliku JKS na apigee:
    $ chown apigee:apigee keystore.jks

    gdzie keystore.jks to nazwa pliku magazynu kluczy.
  4. Edytuj plik /opt/apigee/customer/application/management-server.properties, aby ustawić poniższe właściwości. Jeśli ten plik nie istnieje, utwórz go:
    conf_webserver_ssl.enabled=true
    # Pozostaw atrybut conf_webserver_http.turn.off ustawiony na false
    #, ponieważ wiele wewnętrznych wywołań Edge używa protokołu HTTP.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # Wpisz poniżej zaciemnione hasło do magazynu kluczy.
    conf_webserver_keystore.password=OBF:obfuscatedPassword
    conf_webserver_cert.alias=apigee-devtest


    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 protokołu TLS/SSL dla przeglądarki Edge On.
  5. Ponownie uruchom serwer zarządzania brzegowymi przy użyciu polecenia:
    $ /opt/apigee/apigee-service/bin/apigee-service Edge-management-server restart

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

Po upewnieniu się, że protokół TLS działa prawidłowo, w tym upewniając się, że działa w interfejsie użytkownika Edge, możesz wyłączyć dostęp HTTP do interfejsu API zarządzania zgodnie z opisem w następnej sekcji.

Skonfiguruj interfejs Edge tak, aby używał TLS do uzyskiwania dostępu do interfejsu Edge API

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

Skorzystaj z poniższej procedury, aby skonfigurować interfejs Edge w taki sposób, aby wywołania te były wykonywane 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 w interfejsie API zarządzania, edytuj plik /opt/apigee/customer/application/management-server.properties i ustaw tę właściwość:
    conf_webserver_http.turn.off=true
  3. Ponownie uruchom serwer zarządzania brzegowymi przy użyciu polecenia:
    $ /opt/apigee/apigee-service/bin/apigee-service Edge-management-server restart
  4. Edytuj /opt/apigee/customer/application/ui.properties, aby ustawić tę właściwość interfejsu Edge. Jeśli ten plik nie istnieje, utwórz go:
    conf_apigee_apigee.mgmt.baseurl="https://FQDN:8443/v1"

    gdzie FQDN to pełna nazwa domeny zgodnie z adresem certyfikatu serwera zarządzania, a numer portu to port wskazany powyżej w atrybucie conf.webserver_ssl.
  5. Tylko jeśli używasz samodzielnie podpisanego certyfikatu (niezalecanego w środowisku produkcyjnym) podczas konfigurowania dostępu TLS do interfejsu API zarządzania powyżej, dodaj do parametru 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. Ponownie uruchom interfejs Edge przy użyciu polecenia:
    $ /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 skonfigurować w pliku management-server.properties:

Usługi

Opis

conf_webserver_http.port=8080

Wartość domyślna to 8080.

conf_webserver_ssl.enabled=false

Aby włączyć/wyłączyć TLS/SSL. Przy włączonym TLS/SSL (prawda) musisz też ustawić właściwości ssl.port i keystore.path.

conf_webserver_http.turn.off=true

Aby włączyć/wyłączyć protokół http i 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=

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

conf_webserver_cert.alias=

Opcjonalny alias certyfikatu magazynu kluczy

conf_webserver_keymanager.password=

Jeśli menedżer kluczy ma hasło, wpisz zaciemnioną wersję hasła w formacie OBF:xxxxxxxxxx

conf_webserver_trust.all= <fałsz | true>

conf_webserver_trust.store.path=<path>

conf_webserver_trust.store.password=

Skonfiguruj ustawienia magazynu zaufania. Określ, czy chcesz akceptować wszystkie certyfikaty TLS/SSL (na przykład 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_webserver_except.cipher.suite=<CIPHER_SUITE_1 CIPHER_SUITE_2>

conf_webserver_include.cipher.suites=

Wskaż zestawy szyfrów, które chcesz uwzględnić lub wykluczyć. Jeśli na przykład wykryjesz lukę w zabezpieczeniach szyfru, możesz go tutaj wykluczyć. Poszczególne mechanizmy szyfrowania rozdziel spacją.

Więcej informacji na temat zestawów szyfrów i architektury kryptograficznej znajdziesz w tych artykułach:

http://docs.oracle.com/javase/8/docs/technotes/
przewodniki/security/SunProviders.html#SunJSSE

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

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

  • Rozmiar pamięci podręcznej sesji TLS/SSL (w bajtach) służący do przechowywania informacji o sesjach wielu klientów.
  • Czas trwania sesji TLS/SSL, zanim nastąpi przekroczenie limitu czasu (w milisekundach).