Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
Proxy interfejsu API działa jako mapowanie publicznie dostępnego punktu końcowego na usługę backendu. Host wirtualny określa sposób, w jaki publiczny proxy interfejsu API jest udostępniany aplikacji. Na przykład host wirtualny określa, czy do proxy interfejsu API można uzyskać dostęp za pomocą protokołu TLS. Podczas konfigurowania proxy interfejsu API edytuj jego definicję ProxyEndpoint, aby skonfigurować używane przez niego hosty wirtualne.
TargetEndpoint jest odpowiednikiem ProxyEndpoint w przypadku połączeń wychodzących. TargetEndpoint działa jako klient HTTP z Edge do usługi backendu. Podczas tworzenia proxy interfejsu API możesz skonfigurować go tak, aby używał 0 lub więcej TargetEndpoints.
Więcej informacji:
- Informacje o protokole TLS/SSL
- Używanie protokołu TLS w Edge
- Informacje o hostach wirtualnych
- Magazyny kluczy i magazyny zaufania
- Dokumentacja konfiguracji proxy interfejsu API
Konfigurowanie TargetEndpoint lub TargetServer
Aby skonfigurować TargetEndpoint, edytuj obiekt XML, który go definiuje. Możesz edytować TargetEndpoint, edytując plik XML, który go definiuje w proxy interfejsu API , lub edytować go w interfejsie zarządzania Edge.
Aby edytować TargetEndpoint za pomocą interfejsu zarządzania Edge:
- Zaloguj się w interfejsie zarządzania Edge na https://enterprise.apigee.com.
- Wybierz nazwę proxy interfejsu API, które chcesz zaktualizować.
- Kliknij kartę Programowanie.
- W sekcji Docelowe punkty końcowe kliknij domyślny.
- W obszarze kodu pojawi się definicja TargetEndpoint podobna do tej poniżej:
<TargetEndpoint name="default"> <Description/> <FaultRules/> <Flows/> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow> <HTTPTargetConnection> <Properties/> <SSLInfo> <Enabled>true</Enabled> <TrustStore>ref://myTrustStoreRef</TrustStore> </SSLInfo> <URL>https://mocktarget.apigee.net</URL> </HTTPTargetConnection> </TargetEndpoint> - Skonfiguruj magazyn zaufanych certyfikatów zgodnie z opisem w sekcji Konfigurowanie protokołu TLS w backendzie.
- Wprowadź zmiany i zapisz proxy. Jeśli proxy interfejsu API zostało wdrożone, zapisanie go spowoduje ponowne wdrożenie z nowym ustawieniem.
Zwróć uwagę, że definicja TargetEndpoint zawiera właściwość name. Wartości
właściwości name używasz
do konfigurowania definicji ProxyEndpoint proxy interfejsu API, aby używać
TargetEndpoint.
Więcej informacji znajdziesz w dokumentacji konfiguracji proxy interfejsu API.
TargetEndpoints można skonfigurować tak, aby odwoływały się do TargetServer, a nie do wyraźnego docelowego adresu URL. Konfiguracja TargetServer oddziela konkretne adresy URL punktów końcowych od konfiguracji TargetEndpoint. TargetServers służą do obsługi równoważenia obciążenia i przełączania awaryjnego w wielu instancjach serwera backendu.
Poniżej znajdziesz przykład definicji TargetServer:
<TargetServer name="target1"> <Host>mocktarget.apigee.net</Host> <Port>80</Port> <IsEnabled>true</IsEnabled> </TargetServer>
Do TargetServer odwołuje się nazwa w <HTTPTargetConnection>
elemencie w definicji TargetEndpoint.
Możesz skonfigurować co najmniej 1 nazwany TargetServer, jak pokazano poniżej.
<TargetEndpoint name="default">
...
<HTTPTargetConnection>
<LoadBalancer>
<Server name="target1" />
<Server name="target2" />
</LoadBalancer>
<Path>/test</Path>
</HTTPTargetConnection>
...
</TargetEndpoint>Więcej informacji znajdziesz w artykule Równoważenie obciążenia na serwerach backendu.
Konfigurowanie protokołu TLS w backendzie
Zanim skonfigurujesz dostęp TLS do backendu, musisz zrozumieć 2 ważne kwestie:
- Domyślnie Edge nie weryfikuje certyfikatu backendu. Aby skonfigurować Edge do weryfikowania certyfikatu, musisz utworzyć magazyn zaufanych certyfikatów.
- Użyj odniesienia, aby określić magazyn kluczy lub magazyn zaufanych certyfikatów używany przez Edge.
Obie kwestie opisujemy poniżej.
Definiowanie magazynu zaufanych certyfikatów w celu włączenia weryfikacji certyfikatu
Podczas wysyłania żądania TLS przez TargetEndpoint lub TargetServer Edge domyślnie nie weryfikuje certyfikatu TLS otrzymanego z serwera backendu. Oznacza to, że Edge nie weryfikuje , czy:
- certyfikat został podpisany przez zaufany urząd certyfikacji;
- certyfikat nie wygasł;
- certyfikat zawiera wspólną nazwę. Jeśli istnieje wspólna nazwa, Edge nie sprawdza czy jest ona zgodna z nazwą hosta określoną w adresie URL.
Aby skonfigurować Edge do weryfikowania certyfikatu backendu, musisz:
- Utwórz magazyn zaufania w Edge.
- Prześlij certyfikat serwera lub łańcuch certyfikatów do magazynu zaufania. Jeśli certyfikat serwera jest podpisany przez osobę trzecią, musisz przesłać do magazynu zaufanych certyfikatów cały łańcuch certyfikatów, w tym certyfikat głównego urzędu certyfikacji. Nie ma urzędów certyfikacji, które są zaufane domyślnie.
- Dodaj magazyn zaufanych certyfikatów do definicji TargetEndpoint lub TargetServer.
Więcej informacji znajdziesz w artykule Magazyny kluczy i magazyny zaufania.
Na przykład:
<TargetEndpoint name="default">
…
<HTTPTargetConnection>
<SSLInfo>
<Enabled>true</Enabled>
<TrustStore>ref://myTrustStoreRef</TrustStore>
</SSLInfo>
<URL>https://myservice.com</URL>
</HTTPTargetConnection>
…
</TargetEndpoint>Używanie odniesienia do magazynu kluczy lub magazynu zaufanych certyfikatów
Poniższy przykład pokazuje, jak skonfigurować TargetEndpoint lub TargetServer do obsługi protokołu TLS. W ramach konfigurowania protokołu TLS określasz magazyn zaufanych certyfikatów i magazyn kluczy w definicji TargetEndpoint lub TargetServer.
Apigee zdecydowanie zaleca używanie odniesienia do magazynu kluczy i magazynu zaufanych certyfikatów w definicji TargetEndpoints lub TargetServer. Zaletą używania odniesienia jest to, że aby zaktualizować certyfikat protokołu TLS, wystarczy zaktualizować odniesienie, aby wskazywało inny magazyn kluczy lub magazyn zaufanych certyfikatów.
Odniesienia do magazynów kluczy i magazynów zaufania w definicji TargetEndpoints lub TargetServer działają tak samo jak w przypadku hostów wirtualnych.
Konwertowanie TargetEndpoint lub TargetServer na używanie odniesienia
Możesz mieć istniejące definicje TargetEndpoint lub TargetServer, które używają dosłownej nazwy magazynu kluczy i magazynu zaufania. Aby przekonwertować definicję TargetEndpoint lub TargetServer na używanie odniesień:
- Zaktualizuj definicję TargetEndpoint lub TargetServer, aby używała odniesienia.
- Uruchom ponownie procesory wiadomości Edge:
- W przypadku klientów chmury publicznej skontaktuj się z zespołem pomocy Apigee Edge, aby ponownie uruchomić procesory wiadomości.
- W przypadku klientów**chmury prywatnej** uruchom ponownie procesory wiadomości Edge pojedynczo.
- Sprawdź, czy TargetEndpoint lub TargetServer działa prawidłowo.
Konfigurowanie jednokierunkowego protokołu TLS na serwerze backendu
W przypadku korzystania z definicji TargetEndpoint skonfigurowanie jednokierunkowego dostępu TLS z Edge (klient TLS) do serwera backendu (serwer TLS) nie wymaga dodatkowej konfiguracji w Edge. Za prawidłowe skonfigurowanie protokołu TLS odpowiada serwer backendu.
Musisz tylko upewnić się, że element <URL> w definicji TargetEndpoint odwołuje się do usługi backendu za pomocą protokołu HTTPS i że włączysz protokół TLS:
<TargetEndpoint name="default">
…
<HTTPTargetConnection>
<SSLInfo>
<Enabled>true</Enabled>
</SSLInfo>
<URL>https://myservice.com</URL>
</HTTPTargetConnection>
…
</TargetEndpoint>Jeśli do zdefiniowania usługi backendu używasz TargetServer, włącz protokół TLS w definicji TargetServer:
<TargetServer name="target1">
<Host>mocktarget.apigee.net</Host>
<Port>443</Port>
<IsEnabled>true</IsEnabled>
<SSLInfo>
<Enabled>true</Enabled>
</SSLInfo>
</TargetServer> Jeśli jednak chcesz, aby Edge weryfikował certyfikat backendu, musisz utworzyć magazyn zaufanych certyfikatów, który zawiera certyfikat backendu lub łańcuch certyfikatów. Następnie określ magazyn zaufanych certyfikatów w definicji TargetEndpoint:
<TargetEndpoint name="default">
…
<HTTPTargetConnection>
<SSLInfo>
<Enabled>true</Enabled>
<TrustStore>ref://myTrustStoreRef</TrustStore>
</SSLInfo>
<URL>https://myservice.com</URL>
</HTTPTargetConnection>
…
</TargetEndpoint>Lub w definicji TargetServer:
<TargetServer name="target1">
<Host>mockserver.apigee.net</Host>
<Port>443</Port>
<IsEnabled>true</IsEnabled>
<SSLInfo>
<Enabled>true</Enabled>
<TrustStore>ref://myTrustStoreRef</TrustStore>
</SSLInfo>
</TargetServer>Aby skonfigurować jednokierunkowy protokół TLS:
- Jeśli chcesz zweryfikować certyfikat backendu, utwórz magazyn zaufanych certyfikatów w Edge i prześlij certyfikat backendu lub łańcuch urzędu certyfikacji zgodnie z opisem w artykule Magazyny kluczy i magazyny zaufania. Jeśli w tym przykładzie musisz utworzyć magazyn zaufanych certyfikatów, nadaj mu nazwę myTrustStore.
-
Jeśli utworzysz magazyn zaufania, użyj tego wywołania interfejsu POST API, aby utworzyć odniesienie o nazwie myTrustStoreRef do magazynu zaufania utworzonego powyżej:
curl -X POST -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \ -d '<ResourceReference name="myTrustStoreRef"> <Refers>myTrustKeystore</Refers> <ResourceType>KeyStore</ResourceType> </ResourceReference>' -u email:password - Użyj interfejsu zarządzania Edge, aby zaktualizować definicję TargetEndpoint proxy interfejsu API (lub,
jeśli definiujesz proxy interfejsu API w XML, edytuj pliki XML proxy):
- Zaloguj się w interfejsie zarządzania Edge na https://enterprise.apigee.com.
- W menu interfejsu zarządzania Edge kliknij Interfejsy API.
- Wybierz nazwę proxy interfejsu API, które chcesz zaktualizować.
- Kliknij kartę Programowanie.
- W sekcji Docelowe punkty końcowe kliknij domyślny.
- W obszarze kodu edytuj element
<HTTPTargetConnection>, aby dodać element<SSLInfo>. Sprawdź, czy podajesz prawidłowe odniesienie do magazynu zaufanych certyfikatów i czy ustawiasz wartość<Enabled>na true:<TargetEndpoint name="default"> … <HTTPTargetConnection> <SSLInfo> <Enabled>true</Enabled> <TrustStore>ref://myTrustStoreRef</TrustStore> </SSLInfo> <URL>https://myservice.com</URL> </HTTPTargetConnection> … </TargetEndpoint> - Zapisz proxy interfejsu API. Jeśli proxy interfejsu API zostało wdrożone, zapisanie go spowoduje ponowne wdrożenie z nowym ustawieniem.
Konfigurowanie dwukierunkowego protokołu TLS na serwerze backendu
Jeśli chcesz obsługiwać dwukierunkowy protokół TLS między Edge (klient TLS) a serwerem backendu (serwer TLS ):
- Utwórz magazyn kluczy w Edge i prześlij certyfikat Edge oraz klucz prywatny.
- Jeśli chcesz zweryfikować certyfikat backendu, utwórz w Edge magazyn zaufania, który zawiera certyfikat i łańcuch urzędu certyfikacji otrzymany z serwera backendu.
- Zaktualizuj TargetEndpoint wszystkich proxy interfejsu API, które odwołują się do serwera backendu, aby skonfigurować dostęp TLS.
Używanie aliasu klucza do określania certyfikatu magazynu kluczy
W tym samym magazynie kluczy możesz zdefiniować wiele certyfikatów, z których każdy ma własny alias. Domyślnie Edge używa pierwszego certyfikatu zdefiniowanego w magazynie kluczy.
Opcjonalnie możesz skonfigurować Edge tak, aby używał certyfikatu określonego przez właściwość <KeyAlias>.
Dzięki temu możesz zdefiniować jeden magazyn kluczy dla wielu certyfikatów, a następnie
wybrać ten, którego chcesz użyć w definicji TargetServer. Jeśli Edge nie może znaleźć certyfikatu z aliasem
pasującym do <KeyAlias>, używa domyślnej czynności polegającej na wybraniu
pierwszego certyfikatu w magazynie kluczy.
Użytkownicy Edge w chmurze publicznej muszą skontaktować się z zespołem pomocy Apigee Edge, aby włączyć tę funkcję.
Konfigurowanie dwukierunkowego protokołu TLS
Aby skonfigurować dwukierunkowy protokół TLS:
- Utwórz magazyn kluczy w Edge i prześlij certyfikat oraz klucz prywatny, korzystając z procedury opisanej tutaj: Magazyny kluczy i magazyny zaufania. W tym przykładzie utwórz magazyn kluczy o nazwie myTestKeystore, który używa aliasu myKey dla certyfikatu i klucza prywatnego.
-
Użyj tego wywołania interfejsu POST API, aby utworzyć odniesienie o nazwie myKeyStoreRef do magazynu kluczy utworzonego powyżej:
curl -X POST -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \ -d '<ResourceReference name="myKeyStoreRef"> <Refers>myTestKeystore</Refers> <ResourceType>KeyStore</ResourceType> </ResourceReference>' -u email:passwordOdniesienie określa nazwę magazynu kluczy i typ odniesienia jako
KeyStore.Aby wyświetlić odniesienie, użyj tego wywołania interfejsu GET API:
curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/myKeyStoreRef / -u email:password - Jeśli chcesz zweryfikować certyfikat backendu, utwórz magazyn zaufanych certyfikatów w Edge i prześlij certyfikat oraz łańcuch urzędu certyfikacji zgodnie z opisem w artykule Magazyny kluczy i magazyny zaufania. Jeśli w tym przykładzie musisz utworzyć magazyn zaufanych certyfikatów, nadaj mu nazwę myTrustStore.
-
Jeśli utworzysz magazyn zaufania, użyj tego wywołania interfejsu POST API, aby utworzyć odniesienie o nazwie myTrustStoreRef do magazynu zaufania utworzonego powyżej:
curl -X POST -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \ -d '<ResourceReference name="myTrustStoreRef"> <Refers>myTrustKeystore</Refers> <ResourceType>KeyStore</ResourceType> </ResourceReference>' -u email:password - Użyj interfejsu zarządzania Edge, aby zaktualizować definicję TargetEndpoint proxy interfejsu API (lub,
jeśli definiujesz proxy interfejsu API w XML, edytuj pliki XML proxy):
- Zaloguj się w interfejsie zarządzania Edge na https://enterprise.apigee.com.
- W menu interfejsu zarządzania Edge kliknij Interfejsy API.
- Wybierz nazwę proxy interfejsu API, które chcesz zaktualizować.
- Kliknij kartę Programowanie.
- W sekcji Docelowe punkty końcowe kliknij domyślny.
- W obszarze kodu edytuj element
<HTTPTargetConnection>, aby dodać element<SSLInfo>. Sprawdź, czy podajesz prawidłowy magazyn kluczy i alias klucza oraz czy ustawiasz wartość elementów<Enabled>i<ClientAuthEnabled>na true:<TargetEndpoint name="default"> ... <HTTPTargetConnection> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>true</ClientAuthEnabled> <KeyStore>ref://myKeyStoreRef</KeyStore> <KeyAlias>myKey</KeyAlias> </SSLInfo> <URL>https://myservice.com</URL> </HTTPTargetConnection> ... </TargetEndpoint> - Zapisz proxy interfejsu API. Jeśli proxy interfejsu API zostało wdrożone, zapisanie go spowoduje ponowne wdrożenie z nowym ustawieniem.
Więcej informacji o opcjach dostępnych w <TargetEndpoint>, w tym o używaniu zmiennych
do podawania wartości TargetEndpoint <SSLInfo>, znajdziesz w dokumentacji konfiguracji proxy interfejsu API.
Włączanie SNI
Edge obsługuje używanie funkcji Server Name Indication (SNI) przez procesory wiadomości w przypadku punktów końcowych w Apigee Edge w chmurze i w chmurze prywatnej.
W przypadku Edge w chmurze prywatnej, aby zapewnić zgodność wsteczną z dotychczasowymi backendami docelowymi, Apigee domyślnie wyłączyło SNI. Jeśli backend docelowy jest skonfigurowany do obsługi SNI, możesz włączyć tę funkcję. Więcej informacji znajdziesz w artykule Używanie SNI w Edge.