Po zainstalowaniu protokołu mTLS Apigee na wszystkich węzłach w klastrze musisz skonfigurować i zainicjować komponent apigee-mtls. Aby to zrobić, wygeneruj parę kluczy i certyfikatów oraz zaktualizuj plik konfiguracji na maszynie administracyjnej. Następnie wdrażasz te same wygenerowane pliki i plik konfiguracji na wszystkich węzłach w klastrze i inicjujesz lokalny komponentapigee-mtls.
Konfigurowanie apige-mtls (po początkowej instalacji)
Z tej sekcji dowiesz się, jak skonfigurować uwierzytelnianie mTLS w Apigee bezpośrednio po pierwszej instalacji. Informacje o aktualizowaniu istniejącej instalacji interfejsu Apigee mTLS znajdziesz w artykule Zmienianie istniejącej konfiguracji apigee-mtls.
Ta sekcja dotyczy instalacji w pojedynczym centrum danych. Informacje o konfigurowaniu mTLS w Apigee w konfiguracji z wieloma centrami danych znajdziesz w artykule Konfigurowanie mTLS w Apigee w wielu centrach danych.
Ogólny proces konfigurowania apigee-mtls:
- Zaktualizuj plik konfiguracji: na maszynie administracyjnej zaktualizuj plik konfiguracji, aby uwzględnić ustawienia 
apigee-mtls. - Zainstaluj usługę Consul i wygeneruj poświadczenia: zainstaluj usługę Consul i (opcjonalnie) użyj jej do wygenerowania poświadczeń TLS (tylko raz).
    
Dodatkowo zmodyfikuj plik konfiguracji mTLS w Apigee, aby:
- Dodawanie informacji o danych logowania
 - Definiowanie topologii klastra
 
Pamiętaj, że możesz użyć istniejących danych logowania lub wygenerować je za pomocą Consula.
 - Rozpowszechnij poświadczenia i plik konfiguracji: rozpowszechnij ten sam wygenerowany klucz i certyfikat oraz zaktualizowany plik konfiguracji na wszystkich węzłach w klastrze.
 - Inicjowanie apige-mtls: zainicjuj komponent 
apigee-mtlsna każdym węźle. 
Każdy z tych kroków jest opisany w dalszych sekcjach.
Krok 1. Zaktualizuj plik konfiguracji
W tej sekcji opisaliśmy, jak zmodyfikować plik konfiguracji, aby uwzględniał właściwości konfiguracji mTLS. Więcej ogólnych informacji o pliku konfiguracyjnym znajdziesz w artykule Tworzenie pliku konfiguracyjnego.
Po zaktualizowaniu pliku konfiguracji o właściwości związane z mTLS skopiuj go na wszystkie węzły w klastrze, zanim zainicjujesz na nich komponent apigee-mtls.
Aby zaktualizować plik konfiguracji:
- Na komputerze administracyjnym otwórz plik konfiguracji do edycji.
 - Skopiuj ten zestaw właściwości konfiguracji mTLS i wklej je do pliku konfiguracji:
    
ALL_IP="ALL_PRIVATE_IPS_IN_CLUSTER" ZK_MTLS_HOSTS="ZOOKEEPER_PRIVATE_IPS" CASS_MTLS_HOSTS="CASSANDRA_PRIVATE_IPS" PG_MTLS_HOSTS="POSTGRES_PRIVATE_IPS" RT_MTLS_HOSTS="ROUTER_PRIVATE_IPS" MS_MTLS_HOSTS="MGMT_SERVER_PRIVATE_IPS" MP_MTLS_HOSTS="MESSAGE_PROCESSOR_PRIVATE_IPS" QP_MTLS_HOSTS="QPID_PRIVATE_IPS" LDAP_MTLS_HOSTS="OPENLDAP_PRIVATE_IPS" MTLS_ENCAPSULATE_LDAP="y" ENABLE_SIDECAR_PROXY="y" ENCRYPT_DATA="BASE64_GOSSIP_MESSAGE" PATH_TO_CA_CERT="PATH/TO/consul-agent-ca.pem" PATH_TO_CA_KEY="PATH/TO/consul-agent-ca-key.pem" APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR="NUMBER_OF_DAYS" TLS_MIN_VERSION="tls12" TLS_CIPHER_SUITES="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
Ustaw wartość każdej właściwości zgodnie z konfiguracją.
Właściwości konfiguracji opisane są w tabeli poniżej:
Właściwość Opis ALL_IPLista oddzielonych spacjami prywatnych adresów IP hosta wszystkich węzłów w klastrze. Kolejność adresów IP nie ma znaczenia, z tym zastrzeżeniem, że musi być taka sama we wszystkich plikach konfiguracyjnych w klastrze.
Jeśli skonfigurujesz mTLS w Apigee dla wielu centrów danych, podaj listę wszystkich adresów IP wszystkich hostów we wszystkich regionach.
LDAP_MTLS_HOSTSPrywatny adres IP hosta węzła OpenLDAP w klastrze. ZK_MTLS_HOSTSLista oddzielonych spacjami prywatnych adresów IP hosta, na których są hostowane węzły ZooKeeper w klastrze.
Pamiętaj, że zgodnie z wymaganiami musisz mieć co najmniej 3 węzły ZooKeeper.
CASS_MTLS_HOSTSLista oddzielonych spacjami prywatnych adresów IP hosta, na których znajdują się serwery Cassandra w klastrze. PG_MTLS_HOSTSLista oddzielonych spacjami prywatnych adresów IP hosta, na których znajdują się serwery Postgres w klastrze. RT_MTLS_HOSTSLista oddzielonych spacjami prywatnych adresów IP hosta, na których są hostowane routery w klastrze. MTLS_ENCAPSULATE_LDAPSzyfruje ruch LDAP między procesorem wiadomości a serwerem LDAP. Ustaw na y.MS_MTLS_HOSTSLista oddzielonych spacjami prywatnych adresów IP hosta, na których są hostowane węzły serwera zarządzania w klastrze. MP_MTLS_HOSTSLista oddzielonych spacjami prywatnych adresów IP hosta, na których hostowane są przetwarzacze wiadomości w klastrze. QP_MTLS_HOSTSLista prywatnych adresów IP hosta oddzielonych spacjami, na których w klastrze są hostowane serwery Qpid. ENABLE_SIDECAR_PROXYOkreśla, czy Cassandra i Postgres powinny być świadome istnienia sieci usług. Tę wartość należy ustawić na „y”.
ENCRYPT_DATAKlucz szyfrujący zakodowany w base64 używany przez Consula. Klucz ten został wygenerowany za pomocą polecenia consul keygenw sekcji Krok 2. Zainstaluj Consul i wygeneruj dane logowania.Ta wartość musi być taka sama na wszystkich węzłach w klastrze.
PATH_TO_CA_CERTLokalizacja pliku certyfikatu w węźle. Ten plik został wygenerowany w kroku 2. Zainstaluj Consul i wygeneruj poświadczenia. Ta lokalizacja powinna być taka sama na wszystkich węzłach w klastrze, aby pliki konfiguracji były takie same.
Certyfikat musi być zakodowany w formacie X509v3.
PATH_TO_CA_KEYlokalizacja pliku klucza na węźle. Ten plik został wygenerowany w kroku 2. Zainstaluj Consul i wygeneruj poświadczenia. Ta lokalizacja powinna być taka sama na wszystkich węzłach w klastrze, aby pliki konfiguracji były takie same.
Plik klucza musi być zakodowany w standardzie X509v3.
APIGEE_MTLS_NUM_DAYS_CERT_VALID_FORLiczba dni, przez które certyfikat jest ważny, gdy generujesz certyfikat niestandardowy.
Wartością domyślną jest 365. Maksymalna wartość to 7865 dni (5 lat).
TLS_MIN_VERSIONOkreśla minimalną dozwoloną wersję TLS. Ustaw na tls12, aby narzucić minimalną wersję TLS 1.2.TLS_CIPHER_SUITESRozdzielana przecinkami lista dozwolonych zestawów szyfrów TLS. Na przykład:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384Oprócz wymienionych powyżej właściwości Apigee mTLS używa kilku dodatkowych właściwości, gdy zainstalujesz go w konfiguracji z wieloma centrami danych. Więcej informacji znajdziesz w artykule Konfigurowanie wielu centrów danych.
 - Upewnij się, że 
ENABLE_SIDECAR_PROXYjest ustawiony na „y”. - Zaktualizuj adresy IP w usługach związanych z hostem. Pamiętaj, aby używać prywatnych adresów IP, a nie publicznych adresów IP, gdy odwołujesz się do poszczególnych węzłów.
    
W kolejnych krokach skonfigurujesz wartości innych właściwości, takich jak
ENCRYPT_DATA,PATH_TO_CA_CERTiPATH_TO_CA_KEY. Nie masz jeszcze ustawionych ich wartości.Podczas edytowania właściwości konfiguracji
apigee-mtlspamiętaj o tych kwestiach:- Wszystkie właściwości mają formę ciągu znaków. Wartości wszystkich właściwości musisz ująć w pojedyncze lub podwójne cudzysłowe.
 - Jeśli wartość powiązana z hostem ma więcej niż 1 prywatny adres IP, oddziel poszczególne adresy IP spacjami.
 - W przypadku wszystkich właściwości hosta w pliku konfiguracyjnym używaj prywatnych adresów IP, a nie nazw hostów ani publicznych adresów IP.
 - Kolejność adresów IP w wartości właściwości musi być taka sama we wszystkich plikach konfiguracji w klastrze.
 
 - Zapisz zmiany w pliku konfiguracji.
 
Krok 2. Zainstaluj usługę Consul i wygeneruj dane logowania
W tej sekcji opisaliśmy, jak zainstalować Consul i wygenerować poświadczenia używane przez komponenty obsługujące mTLS.
Aby wygenerować dane logowania, wybierz jedną z tych metod:
- (zalecane) Utwórz własny urząd certyfikacji (CA) za pomocą usługi Consul zgodnie z opisem w tej sekcji
 - Używanie danych logowania do dotychczasowego urzędu certyfikacji z Apigee mTLS (zaawansowane)
 
Dane logowania
Uprawnienia obejmują:
- Certyfikat: certyfikat TLS.
 - Klucz: klucz publiczny TLS.
 - Wiadomość szeptem: klucz szyfrowania zakodowany w formacie Base64.
 
Każdy z tych plików generujesz tylko raz. Następnie skopiuj pliki klucza i certyfikatu na wszystkie węzły w klastrze oraz dodaj klucz szyfrowania do pliku konfiguracji, który również skopiujesz na wszystkie węzły.
Więcej informacji o implementacji szyfrowania w Consul znajdziesz w tych dokumentach:
Instalowanie usługi Consul i generowanie danych logowania
Aby wygenerować poświadczenia, których Apigee mTLS używa do uwierzytelniania bezpiecznej komunikacji między węzłami w klastrze chmury prywatnej, użyj lokalnego binarnego pakietu Consul . Dlatego przed wygenerowaniem danych logowania musisz zainstalować Consul na maszynie administracyjnej.
Aby zainstalować Consul i wygenerować poświadczenia mTLS:
- Na maszynie administracyjnej pobierz binarną wersję Consul 1.8.0 z witryny HashiCorp.
 - Wyodrębnij zawartość pobranego pliku archiwum. Na przykład wyodrębnij zawartość do pliku 
/opt/consul/. . - Na maszynie administracyjnej utwórz nowy urząd certyfikacji (CA) za pomocą tego polecenia:
    
/opt/consul/consul tls ca create
Consul tworzy te pliki, które tworzą parę certyfikat/klucz:
consul-agent-ca.pem(certyfikat)consul-agent-ca-key.pem(klucz)
Domyślnie pliki certyfikatów i kluczy są kodowane w standardzie X509v3.
Później skopiujesz te pliki na wszystkie węzły w klastrze. Na razie musisz tylko zdecydować, gdzie w węzłach umieścisz te pliki. Powinny znajdować się w tym samym miejscu w każdym węźle. Na przykład:
/opt/apigee/. - W pliku konfiguracji ustaw wartość 
PATH_TO_CA_CERTna lokalizację, do której skopiujesz plikconsul-agent-ca.pemna węźle. Na przykład:PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
 - Ustaw wartość 
PATH_TO_CA_KEYna lokalizację, do której skopiujesz plikconsul-agent-ca-key.pemw węźle. Na przykład:PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
 - Utwórz klucz szyfrowania dla usługi Consul, wykonując to polecenie:
    
/opt/consul/consul keygen
Consul zwraca losowy ciąg znaków podobny do tego:
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
 - Skopiuj wygenerowany ciąg znaków i ustaw go jako wartość właściwości 
ENCRYPT_DATAw pliku konfiguracyjnym. Na przykład:ENCRYPT_DATA="
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=" - Zapisz plik konfiguracji.
 
Ten przykład pokazuje ustawienia związane z mTLS w pliku konfiguracji (z przykładowymi wartościami):
... IP1=10.126.0.121 IP2=10.126.0.124 IP3=10.126.0.125 IP4=10.126.0.127 IP5=10.126.0.130 ALL_IP="$IP1 $IP2 $IP3 $IP4 $IP5" LDAP_MTLS_HOSTS="$IP3" ZK_MTLS_HOSTS="$IP3 $IP4 $IP5" CASS_MTLS_HOSTS="$IP3 $IP4 $IP5" PG_MTLS_HOSTS="$IP2 $IP1" RT_MTLS_HOSTS="$IP4 $IP5" MS_MTLS_HOSTS="$IP3" MP_MTLS_HOSTS="$IP4 $IP5" QP_MTLS_HOSTS="$IP2 $IP1" ENABLE_SIDECAR_PROXY="y" ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=" PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem" PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem" ...
Krok 3. Rozpowszechnij plik konfiguracji i poświadczenia tożsamości
Skopiuj te pliki na wszystkie węzły za pomocą narzędzia takiego jak scp:
- Plik konfiguracji: skopiuj zaktualizowaną wersję tego pliku i zastąp nią istniejącą wersję na wszystkich węzłach (nie tylko na węzłach z ZooKeeper).
 - consul-agent-ca.pem: skopiuj do lokalizacji określonej jako wartość parametru
    
PATH_TO_CA_CERTw pliku konfiguracyjnym. - consul-agent-ca-key.pem: skopiuj do lokalizacji określonej jako wartość parametru
    
PATH_TO_CA_KEYw pliku konfiguracyjnym. 
Upewnij się, że lokalizacje, do których kopiujesz pliki certyfikatu i klucza, są zgodne z wartościami ustawionymi w pliku konfiguracji w kroku 2: Zainstaluj Consul i wygeneruj dane logowania.
Krok 4. Inicjalizacja apige-mtls
Po zainstalowaniu usługi apigee-mtls na każdym węźle, zaktualizowaniu pliku konfiguracji oraz skopiowaniu go wraz z danymi logowania na wszystkie węzły w klastrze możesz zainicjować komponent apigee-mtls na każdym węźle.
Aby zainicjować apige-mtls:
- Zaloguj się na węzeł w klastrze jako użytkownik root. Te czynności możesz wykonywać w dowolnej kolejności.
 - Ustaw użytkownika 
apigee:apigeejako właściciela zaktualizowanego pliku konfiguracji, jak pokazano w tym przykładzie:chown apigee:apigee config_file
 - Skonfiguruj komponent 
apigee-mtls, wykonując to polecenie:/opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
 - (Opcjonalnie) Aby sprawdzić, czy konfiguracja została zakończona pomyślnie, uruchom to polecenie:
    
/opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
 - Uruchom mTLS w Apigee, wykonując to polecenie:
    
/opt/apigee/apigee-service/bin/apigee-service apigee-mtls start
Po zainstalowaniu interfejsu Apigee mTLS musisz uruchomić ten komponent przed innymi komponentami w węźle.
 - (Dotyczy tylko węzłów Cassandra) Aby działać w ramach sieci bezpieczeństwa, Cassandra wymaga dodatkowych argumentów. Z tego powodu musisz wykonać te polecenia na każdym węźle Cassandra:
    
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra setup -f config_file
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart - (Tylko węzły Postgres) Aby działać w ramach sieci bezpieczeństwa, Postgres wymaga dodatkowych argumentów. W związku z tym musisz wykonać te czynności na węzłach Postgres:
    
(tylko podstawowe)
- Wykonaj te polecenia na węźle głównym Postgresa:
        
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart 
(tylko w stanie gotowości)
- Utwórz kopię zapasową dotychczasowych danych Postgres. Aby zainstalować mTLS w Apigee, musisz ponownie zainicjować węzły główne/zapasowe, co spowoduje utratę danych. Więcej informacji znajdziesz w artykule Konfigurowanie replikacji głównej/awaryjnej w przypadku PostgreSQL.
 - Usuwanie wszystkich danych z serwera PostgreSQL:
        
rm -rf /opt/apigee/data/apigee-postgresql/pgdata
 - Skonfiguruj Postgres, a następnie uruchom go ponownie, jak pokazano w tym przykładzie:
        
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart 
Jeśli instalujesz w topologii z wieloma centrami danych, użyj bezwzględnej ścieżki do pliku konfiguracji.
 - Wykonaj te polecenia na węźle głównym Postgresa:
        
 - Uruchom pozostałe komponenty Apigee na węźle w kolejności uruchamiania, jak pokazano w tym przykładzie:
    
/opt/apigee/apigee-service/bin/apigee-service component_name start
 - Powtórz ten proces w przypadku każdego węzła w klastrze.
 - (Opcjonalnie) Sprawdź, czy inicjalizacja 
apigee-mtlszostała wykonana prawidłowo, korzystając z jednej z tych metod:- Sprawdzanie konfiguracji iptables
 - Sprawdzanie stanu serwera proxy zdalnego
 - Sprawdzanie stanu kworum
 
Każdą z tych metod opisujemy w artykule Weryfikacja konfiguracji.
 
Zmiana istniejącej konfiguracji apigee-mtls
Aby dostosować istniejącą konfigurację apigee-mtls, musisz odinstalować i ponownie zainstalować apigee-mtls. Musisz też zastosować te zmiany we wszystkich węzłach.
Przypominamy, że podczas zmiany istniejącej konfiguracji mTLS w usłudze Apigee:
- Jeśli zmienisz plik konfiguracji, musisz najpierw odinstalować 
apigee-mtlsi ponownie uruchomićsetuplubconfigure:# DO THIS:
/opt/apigee/apigee-service/bin/apigee-service apigee-mtls uninstall# BEFORE YOU DO THIS:/opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f fileOR/opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure - Musisz odinstalować i ponownie uruchomić 
setuplubconfigurena wszystkich węzłach w klastrze, a nie tylko na jednym.