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


Tanúsítványfájl importálása a Service Fabricen futó tárolóba

Megjegyzés

Az Azure-ban futó Service Fabric-fürtök esetében javasoljuk, hogy a Service Fabric alkalmazás által felügyelt identitást használva hozzon létre alkalmazástanúsítványokat egy tárolóból. A Felügyelt identitás szolgáltatásszinten elkülöníti a titkos kulcsokat és a tanúsítványokat, és lehetővé teszi, hogy az alkalmazástanúsítvány-kiépítés az infrastruktúra munkafolyamata helyett az alkalmazás munkafolyamatának része legyen. A CertificateRef mechanizmus egy későbbi kiadásban megszűnik.

A tárolószolgáltatások biztonságossá tételéhez adjon meg egy tanúsítványt. A Service Fabric mechanizmust biztosít a tárolón belüli szolgáltatások számára egy Windows- vagy Linux-fürt csomópontjaira telepített tanúsítvány eléréséhez (5.7-es vagy újabb verzió). A tanúsítványt telepíteni kell egy tanúsítványtárolóba a LocalMachine alatt a fürt összes csomópontján. A tanúsítványnak megfelelő titkos kulcsnak elérhetőnek, hozzáférhetőnek és - Windows rendszeren - exportálhatónak kell lennie. A tanúsítvány adatai az alkalmazásjegyzékben jelennek meg a ContainerHostPolicies címke alatt, ahogy az alábbi kódrészlet mutatja:

  <ContainerHostPolicies CodePackageRef="NodeContainerService.Code">
    <CertificateRef Name="MyCert1" X509StoreName="My" X509FindValue="[Thumbprint1]"/>
    <CertificateRef Name="MyCert2" X509FindValue="[Thumbprint2]"/>

Windows-fürtök esetén az alkalmazás indításakor a futtatókörnyezet exportálja az összes hivatkozott tanúsítványt és annak megfelelő titkos kulcsát egy PFX-fájlba, amely véletlenszerűen generált jelszóval van védve. A PFX- és a jelszófájlok a tárolón belül érhetők el a következő környezeti változók használatával:

  • Certificates_ServicePackageName_CodePackageName_CertName_PFX
  • Certificates_ServicePackageName_CodePackageName_CertName_Password

Linux-fürtök esetén a rendszer átmásolja a tanúsítványokat (PEM) az X509StoreName által megadott tárolóból a tárolóba. A linuxos megfelelő környezeti változók a következők:

  • Certificates_ServicePackageName_CodePackageName_CertName_PEM
  • Certificates_ServicePackageName_CodePackageName_CertName_PrivateKey

Vegye figyelembe, hogy a és PrivateKey a PEM fájl egyaránt tartalmazza a tanúsítványt és a titkosítatlan titkos kulcsot.

Ha már rendelkezik a szükséges formában a tanúsítványokkal, és hozzá szeretne férni a tárolóban, létrehozhat egy adatcsomagot az alkalmazáscsomagban, és a következőket adhatja meg az alkalmazásjegyzékben:

<ContainerHostPolicies CodePackageRef="NodeContainerService.Code">
  <CertificateRef Name="MyCert1" DataPackageRef="[DataPackageName]" DataPackageVersion="[Version]" RelativePath="[Relative Path to certificate inside DataPackage]" Password="[password]" IsPasswordEncrypted="[true/false]"/>

A tárolószolgáltatás vagy folyamat felelős a tanúsítványfájlok tárolóba való importálásáért. A tanúsítvány importálásához használhat szkripteket, vagy végrehajthat setupentrypoint.sh egyéni kódot a tárolófolyamaton belül. Íme a PFX-fájl importálására szolgáló C# mintakód:

string certificateFilePath = Environment.GetEnvironmentVariable("Certificates_MyServicePackage_NodeContainerService.Code_MyCert1_PFX");
string passwordFilePath = Environment.GetEnvironmentVariable("Certificates_MyServicePackage_NodeContainerService.Code_MyCert1_Password");
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
string password = File.ReadAllLines(passwordFilePath, Encoding.Default)[0];
password = password.Replace("\0", string.Empty);
X509Certificate2 cert = new X509Certificate2(certificateFilePath, password, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet);
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();

Ez a PFX-tanúsítvány használható az alkalmazás vagy szolgáltatás hitelesítéséhez vagy más szolgáltatásokkal való biztonságos kommunikációhoz. Alapértelmezés szerint a fájlok csak a SYSTEM-hez vannak ACLed-hez kapcsolva. A szolgáltatás által megkövetelt módon más fiókokba is hozzáadhatja.

Következő lépésként olvassa el a következő cikkeket: