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: