Konfigurowanie protokołu TLS dla interfejsu API zarządzania

Edge for Private Cloud w wersji 4.16.09

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 uzyskać do niego dostęp w postaci:

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, 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ć 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 pozwala skonfigurować protokół TLS tak, aby używał portu 8443 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 8443 -j ACCEPT --verbose 

Konfigurowanie TLS

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

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

  1. Wygeneruj plik magazynu kluczy JKS zawierający certyfikat TLS i klucz prywatny. Więcej informacji znajdziesz w artykule Konfigurowanie TLS/SSL na potrzeby usługi Edge On Premises.
  2. Skopiuj plik JKS magazynu kluczy do katalogu w węźle serwera zarządzania, takiego jak /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. Zmień plik /opt/apigee/customer/application/management-server.properties, aby ustawić te właściwości. Jeśli nie istnieje, utwórz go:
    conf_webserver_ssl.enabled=true
    # Ustaw wartość true, jeśli wszystkie komunikaty mają być przesyłane przez HTTPS.
    # Nie zalecane, dopóki nie przetestujesz TLS/HTTPS w przypadku interfejsu Edge API i 
    # nie skonfigurujesz interfejsu użytkownika Edge, aby używał TLS do uzyskiwania dostępu do interfejsu Edge API, jak pokazano poniżej.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # Poniżej wpisz zaszyfrowane 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 usługi Edge On.
  5. Ponownie uruchom serwer zarządzania brzegiem za pomocą 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 że działa w interfejsie Edge, możesz wyłączyć dostęp HTTP do interfejsu API zarządzania zgodnie z opisem w następnej sekcji.

Konfigurowanie interfejsu 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 parametru conf_webserver_http.turn.off=false, aby interfejs użytkownika Edge mógł nadal wysyłać wywołania interfejsu Edge API przez HTTP.

Aby skonfigurować interfejs użytkownika przeglądarki Edge tak, aby te wywołania były wykonywane tylko przez HTTPS:

  1. Skonfiguruj dostęp TLS do interfejsu API zarządzania w sposób opisany powyżej.
  2. Po potwierdzeniu, że protokół TLS działa w interfejsie API zarządzania, zmodyfikuj /opt/apigee/customer/application/management-server.properties i ustaw następującą właściwość:
    conf_webserver_http.turn.off=true
  3. Uruchom ponownie serwer Edge Management za pomocą tego polecenia:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  4. Zmień plik /opt/apigee/customer/application/ui.properties, aby ustawić tę właściwość w interfejsie Edge. Jeśli tego pliku nie ma, utwórz go:
    conf_apigee_apigee.mgmt.baseurl="https://FQDN:8443/v1"

    gdzie FQDN to pełna nazwa domeny zgodnie z adresem serwera zarządzania w certyfikacie, a numer portu to port określony powyżej przez conf_webserver_ssl.port.
  5. Tylko wtedy, gdy podczas konfigurowania dostępu TLS do interfejsu API zarządzania powyżej korzystasz z samodzielnie podpisanego certyfikatu (nie jest to zalecane w środowisku produkcyjnym), dodaj tę właściwość do ui.properties:
    conf/application.conf+play.ws.ssl.loose.acceptAnyCertificate=true

    W przeciwnym razie interfejs Edge odrzuci samodzielnie podpisany certyfikat.
  6. Ponownie uruchom interfejs Edge przy użyciu polecenia:
    $ /opt/apigee/apigee-service/bin/apigee-service side-ui restart

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

Poniższa tabela zawiera wszystkie właściwości TLS/SSL, które można ustawić 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ć lub wyłączyć TLS/SSL. Gdy TLS/SSL jest włączone (wartość „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ć połączenia 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=<ścieżka>

Ś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= <false | true>

conf_webserver_trust.store.path=<path>

conf_webserver_trust.store.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 zaufanych certyfikatów i wpisz zaciemnione hasło w tym formacie: OBF:xxxxxxxxxx

conf_webserver_exclude.cipher.suites=<CIPHER_SUITE_1 CIPHER_SUITE_2>

conf_webserver_include.cipher.suites=

Wskazać szyfrowanie, 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 rozdziel spacją.

Informacje o zestawach szyfrów i architekturze kryptograficznej znajdziesz w tych artykułach:

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

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

Ciągi znaków określające:

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