Megosztás a következőn keresztül:


Tanúsítványok és biztonság Linux-fürtökön

Ez a cikk az X.509-tanúsítványok Linux-fürtökön való konfigurálásával kapcsolatos információkat tartalmaz.

X.509-tanúsítványok helye és formátuma Linux-csomópontokon

A Service Fabric általában arra számít, hogy az X.509-tanúsítványok megjelennek a /var/lib/sfcerts könyvtárban Linux-fürtcsomópontokon. Ez a fürttanúsítványokra, ügyféltanúsítványokra stb. igaz. Bizonyos esetekben a tanúsítványok var/lib/sfcerts mappáján kívül más helyet is megadhat. Ha például a Service Fabric Java SDK-val létrehozott Reliable Services szolgáltatással más helyet is megadhat a konfigurációs csomagon (Settings.xml) keresztül egyes alkalmazásspecifikus tanúsítványokhoz. További információ: A konfigurációs csomagban (Settings.xml) hivatkozott tanúsítványok.

Linux-fürtök esetén a Service Fabric elvárja, hogy a tanúsítványok .pem fájlként legyenek jelen, amely a tanúsítványt és a titkos kulcsot is tartalmazza, vagy .crt fájlként, amely tartalmazza a tanúsítványt és a titkos kulcsot tartalmazó .key fájlt. Minden fájlnak PEM formátumúnak kell lennie.

Ha a tanúsítványt az Azure Key Vault egy Resource Manager sablon vagy PowerShell-parancs használatával telepíti, a tanúsítvány a megfelelő formátumban lesz telepítve a /var/lib/sfcerts könyvtárban minden csomóponton. Ha egy tanúsítványt egy másik módszerrel telepít, győződjön meg arról, hogy a tanúsítvány megfelelően van telepítve a fürtcsomópontokon.

Az alkalmazásjegyzékben hivatkozott tanúsítványok

Az alkalmazásjegyzékben megadott tanúsítványoknak, például a SecretsCertificate vagy az EndpointCertificate elemeken keresztül, jelen kell lenniük a /var/lib/sfcerts könyvtárban. Az alkalmazásjegyzékben a tanúsítványok megadásához használt elemek nem veszik át az elérésiút-attribútumot, ezért a tanúsítványoknak az alapértelmezett könyvtárban kell lenniük. Ezek az elemek nem kötelező X509StoreName attribútumot tartalmaznak. Az alapértelmezett érték a "My", amely a /var/lib/sfcerts könyvtárra mutat Linux-csomópontokon. Bármely más érték nincs meghatározva Egy Linux-fürtön. Javasoljuk, hogy kihagyja a Linux-fürtökön futó alkalmazások X509StoreName attribútumát.

A konfigurációs csomagban hivatkozott tanúsítványok (Settings.xml)

Egyes szolgáltatások esetében konfigurálhatja az X.509-tanúsítványokat a ConfigPackage -ben (alapértelmezés szerint Settings.xml). Ez a helyzet például akkor, ha tanúsítványokat deklarál a Service Fabric .NET Core vagy Java SDK-k használatával készült Reliable Services-szolgáltatások RPC-csatornáinak biztonságossá tételéhez. A konfigurációs csomagban kétféleképpen hivatkozhat tanúsítványokra. A támogatás a .NET Core és a Java SDK-k között változik.

Az X509 SecurityCredentialsType használata

A .NET- vagy Java SDK-k WIth paraméterével megadhatja az X509 értéket a SecurityCredentialsType típushoz. Ez a X509Credentials (.NETJava) típusának SecurityCredentials (.NET//Java) felel meg.

Az X509-referencia megkeresi a tanúsítványt egy tanúsítványtárolóban. A következő XML a tanúsítvány helyének megadásához használt paramétereket mutatja be:

    <Parameter Name="SecurityCredentialsType" Value="X509" />
    <Parameter Name="CertificateStoreLocation" Value="LocalMachine" />
    <Parameter Name="CertificateStoreName" Value="My" />

Linuxon futó szolgáltatás esetén a LocalMachine/My a tanúsítványok alapértelmezett helyére mutat, a /var/lib/sfcerts könyvtárra. Linux esetén a CertificateStoreLocation és a CertificateStoreName bármely más kombinációja nincs meghatározva.

Mindig adja meg a LocalMachine értéket a CertificateStoreLocation paraméterhez. Nem kell megadnia a CertificateStoreName paramétert, mert alapértelmezés szerint a "Saját". X509-hivatkozással a tanúsítványfájloknak a fürtcsomópont /var/lib/sfcerts könyvtárában kell lenniük.

A következő XML egy TransportSettings szakaszt mutat be az alábbi stílus alapján:

<Section Name="HelloWorldStatefulTransportSettings">
    <Parameter Name="MaxMessageSize" Value="10000000" />
    <Parameter Name="SecurityCredentialsType" Value="X509" />
    <Parameter Name="CertificateFindType" Value="FindByThumbprint" />
    <Parameter Name="CertificateFindValue" Value="4FEF3950642138446CC364A396E1E881DB76B48C" />
    <Parameter Name="CertificateRemoteThumbprints" Value="9FEF3950642138446CC364A396E1E881DB76B483" />
    <Parameter Name="CertificateStoreLocation" Value="LocalMachine" />
    <Parameter Name="CertificateProtectionLevel" Value="EncryptAndSign" />
    <Parameter Name="CertificateRemoteCommonNames" Value="ServiceFabric-Test-Cert" />
</Section>

A X509_2 SecurityCredentialsType használata

A Java SDK-val megadhatja a SecurityCredentialsTypeX509_2. Ez a X509Credentials2 (Java) típusának SecurityCredentials (Java) felel meg.

Egy X509_2 hivatkozással meg kell adnia egy elérésiút-paramétert, így a tanúsítványt a /var/lib/sfcerts könyvtártól eltérő könyvtárban is megkeresheti. A következő XML a tanúsítvány helyének megadásához használt paramétereket mutatja be:

     <Parameter Name="SecurityCredentialsType" Value="X509_2" />
     <Parameter Name="CertificatePath" Value="/path/to/cert/BD1C71E248B8C6834C151174DECDBDC02DE1D954.crt" />

Az alábbi XML egy TransportSettings szakaszt mutat be a stílus alapján.

<!--Section name should always end with "TransportSettings".-->
<!--Here we are using a prefix "HelloWorldStateless".-->
<Section Name="HelloWorldStatelessTransportSettings">
    <Parameter Name="MaxMessageSize" Value="10000000" />
    <Parameter Name="SecurityCredentialsType" Value="X509_2" />
    <Parameter Name="CertificatePath" Value="/path/to/cert/BD1C71E248B8C6834C151174DECDBDC02DE1D954.crt" />
    <Parameter Name="CertificateProtectionLevel" Value="EncryptandSign" />
    <Parameter Name="CertificateRemoteThumbprints" Value="BD1C71E248B8C6834C151174DECDBDC02DE1D954" />
</Section>

Megjegyzés

A tanúsítvány .crt fájlként van megadva az előző XML-ben. Ez azt jelenti, hogy van egy .key fájl is, amely ugyanazon a helyen tartalmazza a titkos kulcsot.

Reliable Services-alkalmazás konfigurálása Linux-fürtökön való futtatáshoz

A Service Fabric SDK-k lehetővé teszik a Service Fabric futtatókörnyezeti API-kkal való kommunikációt a platform kihasználása érdekében. Ha olyan alkalmazást futtat, amely ezt a funkciót biztonságos Linux-fürtökön használja, konfigurálnia kell az alkalmazást egy tanúsítvánnyal, amelyet a Service Fabric-futtatókörnyezettel való ellenőrzéshez használhat. A .NET Core- vagy Java SDK-k használatával írt Service Fabric Reliable Service-szolgáltatásokat tartalmazó alkalmazásokhoz ezt a konfigurációt kell használni.

Alkalmazás konfigurálásához adjon hozzá egy SecretsCertificate elemet a Tanúsítványok címke alatt, amely a ApplicationManifest.xml fájl ApplicationManifest címkéje alatt található. Az alábbi XML-fájlban az ujjlenyomata alapján hivatkozott tanúsítvány látható:

   <Certificates>
       <SecretsCertificate X509FindType="FindByThumbprint" X509FindValue="0A00AA0AAAA0AAA00A000000A0AA00A0AAAA00" />
   </Certificates>   

Hivatkozhat a fürttanúsítványra vagy az egyes fürtcsomópontokra telepített tanúsítványra. Linux rendszeren a tanúsítványfájloknak a /var/lib/sfcerts könyvtárban kell lenniük. További információ: Az X.509-tanúsítványok helye és formátuma Linux-csomópontokon.