Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Edge umożliwia tworzenie hostów wirtualnych obsługujących jednokierunkowe i dwukierunkowe połączenia TLS. W przypadku TLS jednokierunkowego klient wysyła żądanie sesji do hosta wirtualnego wdrożonego na routerze brzegowym, a router odpowiada certyfikatem zawierającym klucz publiczny hosta wirtualnego. W przypadku podpisanego certyfikatu klient może wysłać żądanie do urzędu certyfikacji (CA) w celu uwierzytelnienia certyfikatu.
W przypadku dwukierunkowego TLS zarówno klient, jak i Edge przesyłają certyfikaty, które są weryfikowane w ramach żądania:
- Router brzegowy przedstawia swój certyfikat klientowi TLS w celu uwierzytelnienia. Następnie klient weryfikuje tożsamość serwera, zanim wyśle certyfikat na serwer.
- Klient TLS przedstawia swój certyfikat Edge, aby się uwierzytelnić.
Więcej informacji znajdziesz w artykule Informacje o hostach wirtualnych.
Przechwytywanie informacji o połączeniu TLS
Podczas wysyłania żądania do serwera proxy interfejsu API za pośrednictwem hosta wirtualnego, który obsługuje TLS, Edge może przechwytywać informacje o połączeniu TLS. Twój serwer proxy interfejsu API może następnie uzyskać dostęp do tych informacji za pomocą zmiennych przepływu, aby przeprowadzić dodatkową analizę i weryfikację.
Typ informacji TLS przechwytywanych przez Edge zależy od tego, czy host wirtualny obsługuje jedno- lub dwukierunkowe TLS. Na przykład w przypadku jednokierunkowego TLS Edge może rejestrować informacje o szyfrze TLS lub protokole TLS używanym w połączeniu TLS.
W przypadku dwukierunkowego protokołu TLS Edge może rejestrować wszystkie informacje, które są rejestrowane w przypadku jednokierunkowego połączenia TLS. oraz zarejestrować informacje o certyfikacie klienta. Na przykład Edge może zarejestrować odcisk cyfrowy SHA1. z certyfikatem klienta i certyfikatem klienta w formacie PEM.
Rejestruję informacje w obu przypadkach jedno- i dwukierunkowe TLS
W tabeli poniżej znajdziesz zmienne przepływu, które zawierają informacje o połączeniu TLS przechwycone przez Edge i dostępne w interfejsie proxy API. Te informacje są rejestrowane zarówno w przypadku szyfrowania jednokierunkowego, jak i dwukierunkowego TLS. Aby to zrobić, ustaw wartość <ConnectionProperties>
na „true” w definicji hosta wirtualnego:
Zmienna przepływu | Opis |
---|---|
tls.cipher
|
Mechanizm szyfrowania połączenia TLS. |
tls.protocol
|
Protokół używany przez połączenie TLS. |
tls.server.name
|
Żądana nazwa serwera SNI. |
tls.session.id
|
Identyfikator sesji. Ta zmienna procesu jest dostępna, gdy ustawisz jedną z tych wartości: |
Przechwytywanie dodatkowych informacji TLS podczas dwukierunkowego TLS
Poniższa tabela zawiera zmienne przepływu, które zawierają szczegóły certyfikatów klienta przechwycone przez Edge
w przypadku dwukierunkowego protokołu TLS. Te informacje są rejestrowane w przypadku dwukierunkowego TLS, gdy w definicji hosta wirtualnego ustawisz wartość <ClientProperties>
na „true”:
Zmienna przepływu | Opis |
---|---|
tls.client.s.dn
|
Nazwa wyróżniająca (DN) podmiotu certyfikatu klienta. |
tls.client.i.dn
|
Nazwa wyróżniająca wydawcy certyfikatu klienta. |
tls.client.raw.cert
|
Certyfikat klienta w formacie PEM. |
tls.client.cert.serial
|
Numer seryjny certyfikatu klienta. |
tls.client.cert.fingerprint
|
Odcisk cyfrowy SHA1 certyfikatu klienta. |
tls.session.id
|
Identyfikator sesji. Ta zmienna przepływu jest dostępna, gdy ustawisz jedną z tych wartości:
|
Konfigurowanie hosta wirtualnego pod kątem rejestrowania informacji TLS
Aby skonfigurować host wirtualny do przechwytywania informacji o TLS, ustaw następujące właściwości
poniżej <PropagateTLSInformation>
–true
.
<ConnectionProperties>
: włączanie rejestrowania informacji o połączeniu TLS zarówno w przypadku szyfrowania jednokierunkowego, jak i dwukierunkowego. (wartością domyślną jestfalse
);<ClientProperties>
: włącz rejestrowanie dodatkowych informacji dla dwukierunkowego protokołu TLS. (wartością domyślną jestfalse
);
Na przykład poniższa definicja hosta wirtualnego używa dwukierunkowego TLS i umożliwia przechwytywanie obu typów informacji TLS:
<VirtualHost name="secure"> .... <SSLInfo> <Enabled>true</Enabled> # Enable two-way TLS. <ClientAuthEnabled>true</ClientAuthEnabled> <IgnoreValidationErrors>false</IgnoreValidationErrors> <KeyAlias>ks-alias</KeyAlias> <KeyStore>ref://ks-ref</KeyStore> <TrustStore>ref://ts-ref</TrustStore> </SSLInfo> <PropagateTLSInformation> <ConnectionProperties>true</ConnectionProperties> <ClientProperties>true</ClientProperties> </PropagateTLSInformation> </VirtualHost>
Jeśli przekazujesz treść JSON, ustaw właściwości w ten sposób:
"propagateTLSInformation" : { "connectionProperties" : true, "clientProperties" : true }
Ustawianie limitów rozmiaru nagłówka
Gdy włączysz przechwytywanie informacji TLS na hoście wirtualnym, Edge przekaże te informacje za pomocą nagłówków HTTP. Dlatego musisz odpowiednio ustawić limity rozmiaru nagłówka w zależności od tego, czy używasz Edge for Cloud czy Edge for Private Cloud:
- Edge dla chmury: Apigee odpowiednio ustawia rozmiary nagłówków.
- Edge dla Private Cloud: funkcja niedostępna.
Dostęp do zmiennych przepływu w proxy interfejsu API
Z poziomu serwera proxy interfejsu API możesz uzyskać dostęp do zmiennych przepływu TLS i je sprawdzać. Możesz na przykład użyć zasady AssignMessage, aby uzyskać do nich dostęp, lub użyć ich w JavaScript za pomocą zasady JavaScript.
Możesz też odwoływać się do zmiennych przepływu w elemencie <Condition>
przepływu podrzędnego lub docelowego albo w elemencie <Step>
lub <RouteRule>
. Możesz na przykład kierować żądanie do różnych miejsc docelowych na podstawie numeru seryjnego klienta.
Więcej informacji: