Fürttanúsítványok konvertálása ujjlenyomat-alapú deklarációkból köznapi nevekké
A tanúsítvány aláírása (más néven ujjlenyomat) egyedi. Az ujjlenyomattal deklarált fürttanúsítvány a tanúsítvány egy adott példányára utal. Ez a sajátosság megnehezíti a tanúsítványok bevezetésének és felügyeletének általános, nehézkes és explicit módon történő kezelését. Minden módosításhoz a fürt és a mögöttes számítási gazdagépek frissítéseinek vezénylése szükséges.
Az Azure Service Fabric-fürt tanúsítványdeklarációinak ujjlenyomat-alapúról deklarációkká alakítása a tanúsítvány tulajdonosának közös neve (CN) alapján jelentősen leegyszerűsíti a felügyeletet. A tanúsítványon való váltáshoz már nincs szükség fürtfrissítésre. Ez a cikk azt ismerteti, hogyan alakíthat át egy meglévő fürtöt CN-alapú deklarációkká állásidő nélkül.
Megjegyzés
Javasoljuk, hogy az Azure Az PowerShell-modult használja az Azure-ral való kommunikációhoz. Az első lépésekhez tekintse meg az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.
Váltás hitelesítésszolgáltató által aláírt tanúsítványokra
Egy olyan fürt biztonsága, amelynek tanúsítványát ujjlenyomattal deklarálta, azon a tényen alapul, hogy lehetetlen vagy számításilag nem megvalósítható olyan tanúsítványt létrehozni, amely ugyanazzal az aláírással rendelkezik, mint egy másik. Ebben az esetben a tanúsítvány eredete kevésbé fontos, ezért az önaláírt tanúsítványok megfelelőek.
Ezzel szemben egy olyan fürt biztonsága, amelynek tanúsítványait CN-folyamatok deklarálják abból az implicit megbízhatóságból, amelyet a fürt tulajdonosa a tanúsítványszolgáltatójában deklarál. A szolgáltató a tanúsítványt kiállító nyilvános kulcsú infrastruktúra (PKI) szolgáltatás. A megbízhatóság többek között a PKI tanúsítási gyakorlatán alapul, függetlenül attól, hogy a működési biztonságukat még más megbízható felek naplózták-e és jóváhagyják-e, és így tovább.
A fürt tulajdonosának részletes ismeretekkel kell rendelkeznie arról is, hogy mely hitelesítésszolgáltatók (CA-k) bocsátják ki tanúsítványaikat, mivel ez a tanúsítványok tulajdonosonkénti érvényesítésének alapvető szempontja. Ez azt is jelenti, hogy az önaláírt tanúsítványok teljesen alkalmatlanok erre a célra. Szó szerint bárki létrehozhat egy tanúsítványt egy adott tulajdonossal.
A CN által deklarált tanúsítvány általában érvényesnek minősül, ha:
- A lánc sikeresen felépíthető.
- A tárgy a várt CN-elemet tartalmazza.
- Kibocsátóját (a láncban közvetlenül vagy magasabb szinten) az ellenőrzést végző ügynök megbízhatónak tekinti.
A Service Fabric kétféleképpen támogatja a tanúsítványok CN szerinti deklarálását:
- Implicit kiállítók esetén a láncnak egy megbízhatósági horgonyban kell végződnie.
- A kiállítók ujjlenyomattal deklarálva, amelyet kibocsátói rögzítésnek neveznek.
További információ: Common-name-based certificate validation deklarációk.
Ha egy fürtöt ujjlenyomattal deklarált, önaláírt tanúsítvány használatával szeretne CN-vé alakítani, a célként aláírt tanúsítványt először ujjlenyomattal kell a fürtbe bevezetni. Csak akkor lehetséges az ujjlenyomatról a CN-re való konvertálás.
Tesztelési célokból az önaláírt tanúsítványt a CN deklarálhatja, de csak akkor, ha a kiállító a saját ujjlenyomatára van rögzítve. Biztonsági szempontból ez a művelet majdnem egyenértékű azzal, ha ugyanazt a tanúsítványt ujjlenyomattal deklaráljuk. Az ilyen típusú sikeres átalakítás nem garantálja a hitelesítésszolgáltató által aláírt tanúsítvánnyal rendelkező ujjlenyomatból CN-be történő sikeres konvertálást. Javasoljuk, hogy tesztelje az átalakítást egy megfelelő, hitelesítésszolgáltató által aláírt tanúsítvánnyal. A teszteléshez ingyenes lehetőségek állnak rendelkezésre.
Töltse fel a tanúsítványt, és telepítse a méretezési csoportban
Az Azure-ban a tanúsítványok beszerzésének és kiépítésének ajánlott mechanizmusa az Azure Key Vault és annak eszközhasználata. A fürttanúsítvány-deklarációval egyező tanúsítványt kell kiépíteni a fürtöt alkotó virtuálisgép-méretezési csoportok minden csomópontjára. További információ: Titkos kódok a virtuálisgép-méretezési csoportokban.
Fontos, hogy az aktuális és a célfürttanúsítványokat is telepítse a fürt minden csomóponttípusának virtuális gépére, mielőtt módosításokat hajt végre a fürt tanúsítványdeklarációiban. A tanúsítványkiállítástól a Service Fabric-csomópontra való üzembe helyezésig vezető utat a Tanúsítvány menete című témakörben tárgyaljuk részletesen.
A fürt optimális kezdő állapotba hozása
Tanúsítványdeklaráció átalakítása ujjlenyomat-alapúról CN-alapú hatásra:
- Hogyan találja meg a fürt egyes csomópontjai a hitelesítő adatait, és hogyan mutatják be a hitelesítő adatait más csomópontoknak.
- Hogyan ellenőrzik az egyes csomópontok a megfelelő hitelesítő adatait egy biztonságos kapcsolat létrehozásakor.
Mielőtt továbblép, tekintse át mindkét konfiguráció bemutatóját és érvényesítési szabályait . Az ujjlenyomat-CN átalakítás során a legfontosabb szempont, hogy a frissített és még nem frissített csomópontoknak (azaz a különböző frissítési tartományokhoz tartozó csomópontoknak) a frissítés során bármikor sikeres kölcsönös hitelesítést kell tudniuk végezni. Ennek a viselkedésnek az ajánlott módja a cél- vagy céltanúsítvány ujjlenyomattal történő deklarálása egy kezdeti frissítésben. Ezután fejezze be a CN-be való áttérést egy későbbiben. Ha a fürt már ajánlott indítási állapotban van, kihagyhatja ezt a szakaszt.
Az átalakításhoz több érvényes kezdő állapot is létezik. Az invariáns az, hogy a fürt már használja a céltanúsítványt (ujjlenyomattal deklarálva) a CN-re való frissítés elején. Ebben a cikkben figyelembe vesszük GoalCert
a , OldCert1
a és OldCert2
a elemet.
Érvényes kezdőállapotok
Thumbprint: GoalCert, ThumbprintSecondary: None
Thumbprint: GoalCert, ThumbprintSecondary: OldCert1
, aholGoalCert
későbbiNotBefore
dátummal rendelkezik, mint aOldCert1
Thumbprint: OldCert1, ThumbprintSecondary: GoalCert
, aholGoalCert
későbbiNotBefore
dátummal rendelkezik, mint aOldCert1
Megjegyzés
A 7.2.445-ös verzió (7.2 CU4) előtt a Service Fabric kiválasztotta a legtávolabbi lejáró tanúsítványt (a tanúsítványt a legtávolabbi "NotAfter" tulajdonsággal), így a fenti, 7.2 CU4 előtti kezdő állapotok megkövetelik, hogy a GoalCert későbbi NotAfter
dátummal rendelkezzen, mint OldCert1
Ha a fürt nem a korábban ismertetett érvényes állapotok egyikében található, a cikk végén található szakaszban talál információt az állapot eléréséről.
Válassza ki a kívánt CN-alapú tanúsítványérvényesítési sémát
Ahogy korábban már említettem, a Service Fabric támogatja a tanúsítványok CN szerinti deklarálását implicit megbízhatósági horgony használatával vagy a kiállító ujjlenyomatainak explicit rögzítésével. További információ: Common-name-based certificate validation deklarációk.
Győződjön meg arról, hogy jól ismeri a különbségeket és a mechanizmusok kiválasztásának következményeit. Ezt a különbséget vagy választási lehetőséget szintaktikailag a paraméter értéke certificateIssuerThumbprintList
határozza meg. Az üres azt jelenti, hogy megbízható legfelső szintű hitelesítésszolgáltatóra (megbízhatósági horgonyra) támaszkodik, míg az ujjlenyomatok készlete korlátozza a fürttanúsítványok engedélyezett közvetlen kiállítóit.
Megjegyzés
A certificateIssuerThumbprint
mező lehetővé teszi a tulajdonos CN által deklarált tanúsítványok várt közvetlen kiállítóinak megadását. Az elfogadható értékek egy vagy több vesszővel elválasztott SHA1 ujjlenyomatok. Ez a művelet megerősíti a tanúsítványérvényesítést.
Ha nincs megadva kiállító, vagy a lista üres, a rendszer elfogadja a tanúsítványt a hitelesítéshez, ha a lánc felépíthető. A tanúsítvány ezután egy, az érvényesítő által megbízhatóan megbízható gyökerre kerül. Ha egy vagy több kiállítói ujjlenyomat van megadva, a rendszer elfogadja a tanúsítványt, ha a közvetlen kiállítójának ujjlenyomata a láncból kinyert módon megfelel az ebben a mezőben megadott értékek bármelyikének. A rendszer elfogadja a tanúsítványt, függetlenül attól, hogy a gyökér megbízható-e.
A PKI különböző hitelesítésszolgáltatókat (más néven kiállítókat) használhat a tanúsítványok egy adott tulajdonossal való aláírásához. Ezért fontos megadni az adott tárgyhoz tartozó összes várt kiállítói ujjlenyomatot. Más szóval a tanúsítvány megújítását nem garantálja, hogy ugyanaz a kiállító írja alá, mint a megújított tanúsítványt.
A kibocsátó megadása ajánlott eljárásnak számít. A kiállító kihagyása továbbra is működni fog a megbízható legfelső szintű tanúsítványhoz láncoló tanúsítványok esetében, de ez a viselkedés korlátozott, és a közeljövőben megszűnhet. Előfordulhat, hogy az Azure-ban üzembe helyezett, privát PKI által kibocsátott X509-tanúsítványokkal védett és tulajdonos által deklarált fürtöket a Service Fabric nem tudja érvényesíteni (a fürt-szolgáltatás közötti kommunikációhoz). Az ellenőrzéshez a PKI tanúsítványszabályzatának felderíthetőnek, elérhetőnek és hozzáférhetőnek kell lennie.
A fürt Azure Resource Manager-sablonjának frissítése és üzembe helyezése
A Service Fabric-fürtök kezelése Azure Resource Manager (ARM) sablonokkal. A JSON-összetevőket is használó alternatíva az Azure Resource Explorer (előzetes verzió) . A Azure Portal jelenleg nem érhető el egyenértékű felület.
Ha a meglévő fürtnek megfelelő eredeti sablon nem érhető el, a Azure Portal is beszerezhet egy ezzel egyenértékű sablont. Nyissa meg a fürtöt tartalmazó erőforráscsoportot, és válassza a sablon exportálása lehetőséget a bal oldali Automation menüben. Ezután válassza ki a kívánt erőforrásokat. A virtuálisgép-méretezési csoportot és a fürterőforrásokat legalább exportálni kell. A létrehozott sablon is letölthető. Ez a sablon módosításokat igényelhet a teljes üzembe helyezés előtt. Előfordulhat, hogy a sablon nem felel meg pontosan az eredetinek. Ez a fürterőforrás aktuális állapotát tükrözi.
A szükséges módosítások a következők:
- A Service Fabric csomópontbővítmény definíciójának frissítése (a virtuálisgép-erőforrás alatt). Ha a fürt több csomóponttípust határoz meg, frissítenie kell az egyes megfelelő virtuálisgép-méretezési csoportok definícióját.
- A fürterőforrás-definíció frissítése.
Részletes példákat itt talál.
A virtuálisgép-méretezési csoport erőforrásainak frissítése
Forrás:
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
{
"name": "[concat('ServiceFabricNodeVmExt','_vmNodeType0Name')]",
"properties": {
"type": "ServiceFabricNode",
"autoUpgradeMinorVersion": true,
"protectedSettings": {
...
},
"publisher": "Microsoft.Azure.ServiceFabric",
"settings": {
...
"certificate": {
"thumbprint": "[parameters('certificateThumbprint')]",
"x509StoreName": "[parameters('certificateStoreValue')]"
}
},
...
}
},
Címzett:
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
{
"name": "[concat('ServiceFabricNodeVmExt','_vmNodeType0Name')]",
"properties": {
"type": "ServiceFabricNode",
"autoUpgradeMinorVersion": true,
"protectedSettings": {
...
},
"publisher": "Microsoft.Azure.ServiceFabric",
"settings": {
...
"certificate": {
"commonNames": [
"[parameters('certificateCommonName')]"
],
"x509StoreName": "[parameters('certificateStoreValue')]"
}
},
...
}
},
A fürterőforrás frissítése
A Microsoft.ServiceFabric/clusters erőforrásban adjon hozzá egy certificateCommonNames tulajdonságot commonNames beállítással, és távolítsa el a tanúsítványtulajdonságot (annak összes beállítását).
Forrás:
{
"apiVersion": "2018-02-01",
"type": "Microsoft.ServiceFabric/clusters",
"name": "[parameters('clusterName')]",
"location": "[parameters('clusterLocation')]",
"dependsOn": [
...
],
"properties": {
"addonFeatures": [
...
],
"certificate": {
"thumbprint": "[parameters('certificateThumbprint')]",
"x509StoreName": "[parameters('certificateStoreValue')]"
},
...
Címzett:
{
"apiVersion": "2018-02-01",
"type": "Microsoft.ServiceFabric/clusters",
"name": "[parameters('clusterName')]",
"location": "[parameters('clusterLocation')]",
"dependsOn": [
...
],
"properties": {
"addonFeatures": [
...
],
"certificateCommonNames": {
"commonNames": [
{
"certificateCommonName": "[parameters('certificateCommonName')]",
"certificateIssuerThumbprint": "[parameters('certificateIssuerThumbprintList')]"
}
],
"x509StoreName": "[parameters('certificateStoreValue')]"
},
...
További információkért lásd: Általános tanúsítványnevet használó Service Fabric-fürt üzembe helyezése ujjlenyomat helyett.
A frissített sablon üzembe helyezése
A módosítások elvégzése után helyezze újra üzembe a frissített sablont.
$groupname = "sfclustertutorialgroup"
New-AzResourceGroupDeployment -ResourceGroupName $groupname -Verbose `
-TemplateParameterFile "C:\temp\cluster\parameters.json" -TemplateFile "C:\temp\cluster\template.json"
Érvényes indítási állapot elérése a fürt CN-alapú tanúsítványdeklarációkká alakításához
Kezdő állapot | 1. frissítés | 2. frissítés |
---|---|---|
Thumbprint: OldCert1, ThumbprintSecondary: None és GoalCert egy későbbi NotBefore dátummal rendelkezik, mint OldCert1 |
Thumbprint: OldCert1, ThumbprintSecondary: GoalCert |
- |
Thumbprint: OldCert1, ThumbprintSecondary: None és OldCert1 egy későbbi NotBefore dátummal rendelkezik, mint GoalCert |
Thumbprint: GoalCert, ThumbprintSecondary: OldCert1 |
Thumbprint: GoalCert, ThumbprintSecondary: None |
Thumbprint: OldCert1, ThumbprintSecondary: GoalCert , ahol OldCert1 későbbi NotBefore dátummal rendelkezik, mint GoalCert |
Frissítés Thumbprint: GoalCert, ThumbprintSecondary: None |
- |
Thumbprint: GoalCert, ThumbprintSecondary: OldCert1 , ahol OldCert1 későbbi NotBefore dátummal rendelkezik, mint GoalCert |
Frissítés Thumbprint: GoalCert, ThumbprintSecondary: None |
- |
Thumbprint: OldCert1, ThumbprintSecondary: OldCert2 |
Az állapotba kerülés vagy az egyik eltávolítása OldCert1 OldCert2 Thumbprint: OldCertx, ThumbprintSecondary: None |
Folytatás az új kezdő állapottól |
Megjegyzés
A 7.2.445-ös verziót (7.2 CU4) megelőző verziójú fürtök esetében cserélje le NotBefore
NotAfter
a elemet a fenti állapotokra.
A frissítések végrehajtásával kapcsolatos utasításokért lásd: Tanúsítványok kezelése egy Azure Service Fabric-fürtben.
Következő lépések
- Tudnivalók a fürtbiztonságról.
- Megtudhatja, hogyan gördíthet át egy fürttanúsítványt köznapi név alapján.
- Megtudhatja, hogyan konfigurálhat fürtöt érintés nélküli automatikus regisztrációhoz.