Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
Edge umożliwia tworzenie hostów wirtualnych, które obsługują jednokierunkowe i dwukierunkowe protokół TLS. W przypadku jednokierunkowego protokołu TLS klient wysyła żądanie sesji do hosta wirtualnego wdrożonego w routerze brzegowym, a router w odpowiedzi wysyła certyfikat zawierający klucz publiczny hosta wirtualnego. W przypadku podpisanego certyfikatu klient może wysłać do urzędu certyfikacji żądanie uwierzytelnienia certyfikatu.
W przypadku dwukierunkowego protokołu TLS certyfikaty klienta i Edge są weryfikowane w ramach żądania:
- Router brzegowy przedstawia swój certyfikat klientowi TLS, aby się uwierzytelnić. Następnie klient weryfikuje tożsamość serwera przed wysłaniem na serwer certyfikatu.
- 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 wysyłanego do serwera proxy interfejsu API za pośrednictwem hosta wirtualnego obsługującego TLS Edge może przechwycić informacje o połączeniu TLS. Serwer proxy interfejsu API może uzyskać dostęp do tych informacji za pomocą zmiennych przepływu w celu przeprowadzenia dodatkowej analizy i weryfikacji.
Typ informacji TLS przechwyconych przez Edge zależy od tego, czy host wirtualny obsługuje jedno- czy dwukierunkowe szyfrowanie TLS. Na przykład w przypadku jednokierunkowego protokołu TLS Edge może przechwytywać informacje o mechanizmie szyfrowania TLS lub protokole TLS używanym w połączeniu TLS.
W przypadku dwukierunkowego protokołu TLS Edge może przechwytywać wszystkie informacje, które są rejestrowane w przypadku jednokierunkowego protokołu TLS, a także przechwytywać informacje o certyfikacie klienta. Na przykład Edge może przechwycić odcisk cyfrowy SHA1 certyfikatu klienta i certyfikatu klienta w formacie PEM.
Przechwytywanie informacji zarówno w przypadku jednokierunkowego, jak i dwukierunkowego protokołu TLS
W tabeli poniżej znajdziesz zmienne przepływu zawierające informacje o połączeniu TLS przechwycone przez Edge i dostępne do dostępu przez serwer proxy interfejsu API. Te informacje są rejestrowane zarówno w przypadku jednokierunkowego, jak i dwukierunkowego protokołu TLS, ustawiając dla zasady <ConnectionProperties>
wartość true w definicji hosta wirtualnego:
Zmienna przepływu | Opis |
---|---|
tls.cipher
|
Mechanizm szyfrowania używany w połączeniu TLS. |
tls.protocol
|
Protokół używany przez połączenie TLS. |
tls.server.name
|
Żądana nazwa serwera SNI. |
tls.session.id
|
Identyfikator sesji. Ta zmienna przepływu jest dostępna, gdy ustawisz wartość |
Przechwytywanie dodatkowych informacji TLS w trakcie dwukierunkowego protokołu TLS
W tabeli poniżej znajdziesz zmienne przepływu zawierające szczegóły certyfikatu klienta przechwycone przez Edge przy użyciu dwukierunkowego protokołu TLS. Te informacje są rejestrowane w przypadku dwukierunkowego protokołu TLS po ustawieniu dla atrybutu <ClientProperties>
na wartość true w definicji hosta wirtualnego:
Zmienna przepływu | Opis |
---|---|
tls.client.s.dn
|
Nazwa wyróżniająca podmiotu (DN) certyfikatu klienta. |
tls.client.i.dn
|
Nazwa wyróżniająca (DN) wystawcy 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 wartość parametru |
Konfigurowanie hosta wirtualnego do przechwytywania informacji TLS
Aby skonfigurować hosta wirtualnego do przechwytywania informacji TLS, ustaw poniższe właściwości w <PropagateTLSInformation>
na true
.
<ConnectionProperties>
: włącz przechwytywanie informacji o połączeniu TLS dla jednokierunkowego i dwukierunkowego protokołu TLS. Wartością domyślną jestfalse
.<ClientProperties>
: włącz przechwytywanie dodatkowych informacji na potrzeby dwukierunkowego protokołu TLS. Wartością domyślną jestfalse
.
Na przykład poniższa definicja hosta wirtualnego korzysta z dwukierunkowego protokołu 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 taki sposób:
"propagateTLSInformation" : { "connectionProperties" : true, "clientProperties" : true }
Ustawianie limitów rozmiaru nagłówka
Gdy włączysz przechwytywanie informacji TLS na hoście wirtualnym, Edge przekazuje je za pomocą nagłówków HTTP. Musisz więc upewnić się, że limity rozmiaru nagłówka są odpowiednio ustawione w zależności od tego, czy używasz Edge w Google Cloud czy Edge dla Private Cloud:
- Brzegowy dla chmury: Apigee odpowiednio ustawia rozmiary nagłówków.
- Brzegowy Private Cloud: funkcja jest niedostępna.
Dostęp do zmiennych przepływu przez serwer proxy interfejsu API
Z poziomu serwera proxy interfejsu API możesz uzyskiwać 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 w JavaScript za pomocą zasady JavaScript.
Do zmiennych przepływu możesz się też odwoływać w elemencie <Condition>
procesu proxy lub przepływu docelowego albo w elemencie <Step>
lub <RouteRule>
. Możesz na przykład skierować żądanie do różnych celów na podstawie numeru seryjny klienta.
Więcej informacji: