Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
Edge umożliwia tworzenie hostów wirtualnych, które obsługują jednokierunkowy i dwukierunkowy protokół TLS. W przypadku jednokierunkowego protokołu TLS, klient wysyła żądanie sesji do hosta wirtualnego wdrożonego na routerze Edge, a router odpowiada certyfikatem zawierającym klucz publiczny hosta wirtualnego. W przypadku certyfikatu podpisanego klient może następnie wysłać żądanie do urzędu certyfikacji (CA), aby uwierzytelnić certyfikat.
W przypadku dwukierunkowego protokołu TLS zarówno klient, jak i Edge przekazują certyfikaty, które są weryfikowane w ramach żądania:
- Router Edge przedstawia swój certyfikat klientowi TLS, aby się uwierzytelnić. Klient weryfikuje tożsamość serwera przed wysłaniem do niego swojego certyfikatu.
- Klient TLS przedstawia swój certyfikat Edge, aby się uwierzytelnić.
Więcej informacji znajdziesz w artykule o hostach wirtualnych.
Przechwytywanie informacji o połączeniu TLS
Podczas wysyłania żądania do proxy interfejsu API za pomocą hosta wirtualnego, który obsługuje protokół TLS, Edge może przechwytywać informacje o połączeniu TLS. Proxy interfejsu API może następnie uzyskać dostęp do tych informacji za pomocą zmiennych przepływu, aby przeprowadzić dodatkową analizę i weryfikację.
Rodzaj informacji TLS przechwytywanych przez Edge zależy od tego, czy host wirtualny obsługuje jednokierunkowy czy dwukierunkowy protokół TLS. Na przykład w przypadku jednokierunkowego protokołu TLS Edge może przechwytywać informacje o szyfrze TLS lub protokole TLS używanym w połączeniu TLS.
W przypadku dwukierunkowego protokołu TLS Edge może przechwytywać wszystkie te same informacje co w przypadku jednokierunkowego protokołu TLS, a także informacje o certyfikacie klienta. Edge może na przykład przechwytywać odcisk cyfrowy SHA1 certyfikatu klienta oraz certyfikat klienta w formacie PEM.
Przechwytywanie informacji w przypadku obu jednokierunkowego i dwukierunkowego protokołu TLS
W tabeli poniżej znajdziesz listę zmiennych przepływu, które zawierają informacje o połączeniu TLS przechwycone
przez Edge i dostępne w proxy interfejsu API. Te informacje są przechwytywane w przypadku jednokierunkowego
i dwukierunkowego protokołu TLS przez ustawienie <ConnectionProperties> na true w
definicji hosta wirtualnego:
| Zmienna przepływu | Opis |
|---|---|
tls.cipher
|
Szyfr używany przez połączenie 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 |
Przechwytywanie dodatkowych informacji TLS podczas dwukierunkowego protokołu TLS
W tabeli poniżej znajdziesz listę zmiennych przepływu, które zawierają szczegóły certyfikatu klienta przechwycone przez Edge
w przypadku dwukierunkowego protokołu TLS. Te informacje są przechwytywane w przypadku dwukierunkowego protokołu TLS przez ustawienie
<ClientProperties> na true w definicji hosta wirtualnego:
| Zmienna przepływu | Opis |
|---|---|
tls.client.s.dn
|
Nazwa wyróżniająca (DN) podmiotu 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 either
|
Konfigurowanie hosta wirtualnego do przechwytywania informacji TLS
Aby skonfigurować hosta wirtualnego do przechwytywania informacji TLS, ustaw te właściwości
w sekcji <PropagateTLSInformation> na true.
<ConnectionProperties>: włącz przechwytywanie informacji o połączeniu TLS w przypadku jednokierunkowego i dwukierunkowego protokołu TLS. Wartością domyślną jestfalse.<ClientProperties>: włącz przechwytywanie dodatkowych informacji w przypadku dwukierunkowego protokołu TLS. Wartością domyślną jestfalse.
Na przykład ta definicja hosta wirtualnego używa 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 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 będzie przekazywać te informacje za pomocą nagłówków HTTP. Musisz więc zadbać o to, aby limity rozmiaru nagłówka były odpowiednio ustawione w zależności od tego, czy używasz Edge for the Cloud czy Edge for the Private Cloud:
- Edge for the Cloud: Apigee odpowiednio ustawia rozmiary nagłówków.
- Edge for the Private Cloud: funkcja niedostępna.
Uzyskiwanie dostępu do zmiennych przepływu w proxy interfejsu API
W 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, lub zasady JavaScript, aby uzyskać do nich dostęp w JavaScript.
Możesz też odwoływać się do zmiennych przepływu w elemencie <Condition> przepływu proxy lub docelowego,
albo w elemencie <Step> lub <RouteRule>. Możesz na przykład kierować
żądanie do różnych miejsc docelowych na podstawie nazwy SN klienta.
Więcej informacji znajdziesz w tych artykułach: