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.