Share via


Ansluta till en säker tjänst med omvänd proxy

Den här artikeln beskriver hur du upprättar en säker anslutning mellan omvänd proxy och tjänster, vilket möjliggör en säker kanal från slutpunkt till slutpunkt. Mer information om omvänd proxy finns i Omvänd proxy i Azure Service Fabric

Viktigt

Anslutning till säkra tjänster stöds endast när omvänd proxy har konfigurerats för att lyssna på HTTPS. Den här artikeln förutsätter att så är fallet. Se Konfigurera omvänd proxy i Azure Service Fabric för att konfigurera omvänd proxy i Service Fabric.

Säker anslutningsetablering mellan omvänd proxy och tjänster

Omvänd proxyautentisering för tjänster:

Den omvända proxyn identifierar sig för tjänster som använder certifikatet. För Azure-kluster anges certifikatet med egenskapen reverseProxyCertificate i avsnittet Microsoft.ServiceFabric/clustersResurstyp i Resource Manager-mallen. För fristående kluster anges certifikatet antingen med egenskapen ReverseProxyCertificate eller egenskapen ReverseProxyCertificateCommonNames i avsnittet Säkerhet i ClusterConfig.json. Mer information finns i Aktivera omvänd proxy i fristående kluster.

Tjänster kan implementera logiken för att verifiera certifikatet som presenteras av den omvända proxyn. Tjänsterna kan ange den godkända klientcertifikatinformationen som konfigurationsinställningar i konfigurationspaketet. Detta kan läsas vid körning och användas för att verifiera certifikatet som presenteras av den omvända proxyn. Se Hantera programparametrar för att lägga till konfigurationsinställningarna.

Omvänd proxy som verifierar tjänstens identitet via certifikatet som presenteras av tjänsten:

Omvänd proxy stöder följande principer för att utföra verifiering av servercertifikat för certifikat som presenteras av tjänster: None, ServiceCommonNameAndIssuer och ServiceCertificateThumbprints. Om du vill välja principen för omvänd proxy som ska användas anger du avsnittet ApplicationCertificateValidationPolicy i avsnittet ApplicationGateway/Http under fabricSettings.

I nästa avsnitt visas konfigurationsinformation för vart och ett av dessa alternativ.

Valideringsalternativ för tjänstcertifikat

  • Ingen: Omvänd proxy hoppar över verifieringen av det proxied tjänstcertifikatet och upprättar den säkra anslutningen. Det här är standardbeteendet. Ange ApplicationCertificateValidationPolicy med värdet Ingen i avsnittet ApplicationGateway/Http .

    {
    "fabricSettings": [
               ...
               {
                 "name": "ApplicationGateway/Http",
                 "parameters": [
                   {
                     "name": "ApplicationCertificateValidationPolicy",
                     "value": "None"
                   }
                 ]
               }
             ],
             ...
    }
    
  • ServiceCommonNameAndIssuer: Omvänd proxy verifierar certifikatet som presenteras av tjänsten baserat på certifikatets eget namn och den omedelbara utfärdarens tumavtryck: Ange ApplicationCertificateValidationPolicy med värdet ServiceCommonNameAndIssuer i avsnittet ApplicationGateway/Http .

    {
    "fabricSettings": [
               ...
               {
                 "name": "ApplicationGateway/Http",
                 "parameters": [
                   {
                     "name": "ApplicationCertificateValidationPolicy",
                     "value": "ServiceCommonNameAndIssuer"
                   }
                 ]
               }
             ],
             ...
    }
    

    Om du vill ange listan över vanliga tjänstnamn och utfärdarens tumavtryck lägger du till avsnittet ApplicationGateway/Http/ServiceCommonNameAndIssuer under fabricSettings, enligt nedan. Du kan lägga till flera gemensamma certifikatnamn och tumavtryckspar för utfärdaren i parametermatrisen.

    Om den omvända slutpunktsproxyn ansluter till visar ett certifikat som har ett eget namn och utfärdarens tumavtryck matchar något av de värden som anges här, upprättas en TLS-kanal. Om certifikatinformationen inte matchas misslyckas den omvända proxyn klientens begäran med statuskoden 502 (Felaktig gateway). HTTP-statusraden innehåller också frasen "Ogiltigt SSL-certifikat".

    {
    "fabricSettings": [
               ...
               {
                 "name": "ApplicationGateway/Http/ServiceCommonNameAndIssuer",
                 "parameters": [
                   {
                     "name": "WinFabric-Test-Certificate-CN1",
                     "value": "b3 44 9b 01 8d 0f 68 39 a2 c5 d6 2b 5b 6c 6a c8 22 b4 22 11"
                   },
                   {
                     "name": "WinFabric-Test-Certificate-CN2",
                     "value": "b3 44 9b 01 8d 0f 68 39 a2 c5 d6 2b 5b 6c 6a c8 22 11 33 44"
                   }
                 ]
               }
             ],
             ...
    }
    
  • ServiceCertificateThumbprints: Omvänd proxy verifierar det proxied tjänstcertifikatet baserat på dess tumavtryck. Du kan välja att gå den här vägen när tjänsterna har konfigurerats med självsignerade certifikat: Ange ApplicationCertificateValidationPolicy med värdet ServiceCertificateThumbprints i avsnittet ApplicationGateway/Http .

    {
    "fabricSettings": [
               ...
               {
                 "name": "ApplicationGateway/Http",
                 "parameters": [
                   {
                     "name": "ApplicationCertificateValidationPolicy",
                     "value": "ServiceCertificateThumbprints"
                   }
                 ]
               }
             ],
             ...
    }
    

    Ange även tumavtrycken med posten ServiceCertificateThumbprints i avsnittet ApplicationGateway/Http . Flera tumavtryck kan anges som en kommaavgränsad lista i värdefältet enligt nedan:

    {
    "fabricSettings": [
               ...
               {
                 "name": "ApplicationGateway/Http",
                 "parameters": [
                     ...
                   {
                     "name": "ServiceCertificateThumbprints",
                     "value": "78 12 20 5a 39 d2 23 76 da a0 37 f0 5a ed e3 60 1a 7e 64 bf,78 12 20 5a 39 d2 23 76 da a0 37 f0 5a ed e3 60 1a 7e 64 b9"
                   }
                 ]
               }
             ],
             ...
    }
    

    Om tumavtrycket för servercertifikatet visas i den här konfigurationsposten lyckas den omvända proxyn TLS-anslutningen. Annars avslutas anslutningen och klientens begäran misslyckas med en 502 (felaktig gateway). HTTP-statusraden innehåller också frasen "Ogiltigt SSL-certifikat".

Logik för val av slutpunkt när tjänster exponerar säkra och osäkrade slutpunkter

Service Fabric stöder konfiguration av flera slutpunkter för en tjänst. Mer information finns i Ange resurser i ett tjänstmanifest.

Omvänd proxy väljer en av slutpunkterna för att vidarebefordra begäran baserat på frågeparametern ListenerName i tjänst-URI:n. Om parametern ListenerName inte har angetts kan omvänd proxy välja valfri slutpunkt från slutpunktslistan. Beroende på vilka slutpunkter som konfigurerats för tjänsten kan den valda slutpunkten vara en HTTP- eller HTTPS-slutpunkt. Det kan finnas scenarier eller krav där du vill att den omvända proxyn ska fungera i ett "säkert läge". Du vill alltså inte att den säkra omvända proxyn ska vidarebefordra begäranden till oskyddade slutpunkter. Om du vill ange omvänd proxy till säkert läge anger du konfigurationsposten SecureOnlyMode med värdet true i avsnittet ApplicationGateway/Http .

{
"fabricSettings": [
          ...
          {
            "name": "ApplicationGateway/Http",
            "parameters": [
                ...
              {
                "name": "SecureOnlyMode",
                "value": true
              }
            ]
          }
        ],
        ...
}

Anteckning

Om en klient har angett ett ListenerName som motsvarar en HTTP-slutpunkt (oskyddad) misslyckas den omvända proxyn med http-statuskoden 404 (hittades inte) när den körs i SecureOnlyMode.

Konfigurera klientcertifikatautentisering via omvänd proxy

TLS-avslutning sker vid den omvända proxyn och alla klientcertifikatdata går förlorade. För de tjänster som ska utföra klientcertifikatautentisering anger du inställningen ForwardClientCertificate i avsnittet ApplicationGateway/Http .

  1. När ForwardClientCertificate är inställt på falskt begär inte omvänd proxy klientcertifikatet under dess TLS-handskakning med klienten. Det här är standardbeteendet.

  2. När ForwardClientCertificate är inställt på sant begär omvänd proxy klientens certifikat under dess TLS-handskakning med klienten. Därefter vidarebefordras klientcertifikatdata i ett anpassat HTTP-huvud med namnet X-Client-Certificate. Huvudvärdet är den base64-kodade PEM-formatsträngen för klientens certifikat. Tjänsten kan lyckas/misslyckas med begäran med lämplig statuskod när certifikatdata har inspekterats. Om klienten inte visar något certifikat vidarebefordrar omvänd proxy ett tomt huvud och låter tjänsten hantera ärendet.

Anteckning

Omvänd proxy fungerar endast som en vidarebefordringstjänst. Den utför ingen validering av klientens certifikat.

Nästa steg