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:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: