تأمين نظام مجموعة مستقلة على Windows باستخدام شهادات X.509

توضح هذه المقالة كيفية تأمين الاتصال بين العقد المختلفة لنظام مجموعة Windows المستقلة. كما توضح كيفية مصادقة العملاء الذين يتصلون بنظام المجموعة باستخدام شهادات X.509. تضمن المصادقة أن المستخدمين المصرح لهم فقط يمكنهم الوصول إلى نظام المجموعة والتطبيقات الموزعة وتنفيذ مهام الإدارة. يجب تمكين أمان الشهادة على نظام المجموعة عند إنشاء نظام المجموعة.

لمزيد من المعلومات حول أمان نظام المجموعة، مثل أمان العقدة إلى العقدة وأمان العميل إلى العقدة والتحكم في الوصول المستند إلى الدور، راجع سيناريوهات أمان نظام المجموعة.

ما الشهادات التي تحتاجها؟

ابدأ بـ بتنزيل حزمة Service Fabric لـ Windows Server إلى إحدى العقد في نظام المجموعة الخاص بك. في الحزمة التي تم تنزيلها، ستجد ملف ClusterConfig.X509.MultiMachine.json. افتح الملف، وراجع القسم الخاص بالأمان ضمن قسم الخصائص:

"security": {
    "metadata": "The Credential type X509 indicates this cluster is secured by using X509 certificates. The thumbprint format is d5 ec 42 3b 79 cb e5 07 fd 83 59 3c 56 b9 d5 31 24 25 42 64.",
    "ClusterCredentialType": "X509",
    "ServerCredentialType": "X509",
    "CertificateInformation": {
        "ClusterCertificate": {
            "Thumbprint": "[Thumbprint]",
            "ThumbprintSecondary": "[Thumbprint]",
            "X509StoreName": "My"
        },        
        "ClusterCertificateCommonNames": {
            "CommonNames": [
            {
                "CertificateCommonName": "[CertificateCommonName]",
                "CertificateIssuerThumbprint": "[Thumbprint1,Thumbprint2,Thumbprint3,...]"
            }
            ],
            "X509StoreName": "My"
        },
        "ClusterCertificateIssuerStores": [
            {
                "IssuerCommonName": "[IssuerCommonName]",
                "X509StoreNames" : "Root"
            }
        ],
        "ServerCertificate": {
            "Thumbprint": "[Thumbprint]",
            "ThumbprintSecondary": "[Thumbprint]",
            "X509StoreName": "My"
        },
        "ServerCertificateCommonNames": {
            "CommonNames": [
            {
                "CertificateCommonName": "[CertificateCommonName]",
                "CertificateIssuerThumbprint": "[Thumbprint1,Thumbprint2,Thumbprint3,...]"
            }
            ],
            "X509StoreName": "My"
        },
        "ServerCertificateIssuerStores": [
            {
                "IssuerCommonName": "[IssuerCommonName]",
                "X509StoreNames" : "Root"
            }
        ],
        "ClientCertificateThumbprints": [
            {
                "CertificateThumbprint": "[Thumbprint]",
                "IsAdmin": false
            },
            {
                "CertificateThumbprint": "[Thumbprint]",
                "IsAdmin": true
            }
        ],
        "ClientCertificateCommonNames": [
            {
                "CertificateCommonName": "[CertificateCommonName]",
                "CertificateIssuerThumbprint": "[Thumbprint1,Thumbprint2,Thumbprint3,...]",
                "IsAdmin": true
            }
        ],
        "ClientCertificateIssuerStores": [
            {
                "IssuerCommonName": "[IssuerCommonName]",
                "X509StoreNames": "Root"
            }
        ]
        "ReverseProxyCertificate": {
            "Thumbprint": "[Thumbprint]",
            "ThumbprintSecondary": "[Thumbprint]",
            "X509StoreName": "My"
        },
        "ReverseProxyCertificateCommonNames": {
            "CommonNames": [
                {
                "CertificateCommonName": "[CertificateCommonName]"
                }
            ],
            "X509StoreName": "My"
        }
    }
},

يصف هذا القسم الشهادات التي تحتاجها لتأمين نظام مجموعة Windows المستقلة الخاصة بك. إذا حددت شهادة نظام مجموعة، فعيّن قيمة "ClusterCredentialType" إلى X509. إذا حددت شهادة الخادم للاتصالات الخارجية، فعيّن قيمة "ServerCredentialType" إلى X509. رغم أنها ليست إلزامية، لكننا نوصي بأن تكون لديك كلتا الشهادتين لنظام مجموعة مؤمن بشكل صحيح. إذا عينت هذه القيم إلى X509، فيجب عليك أيضاً تحديد الشهادات المقابلة أو سيُظهر Service Fabric استثناءً. في بعض السيناريوهات، قد تحتاج إلى تحديد "ClientCertificateThumbprints" أو "ReverseProxyCertificate" فقط. في هذه السيناريوهات، لا تحتاج إلى تعيين "ClusterCredentialType" أو "ServerCredentialType" إلى X509.

ملاحظة

بصمة الإبهام هي الهوية الأساسية للشهادة. لمعرفة بصمة إبهام الشهادات التي تقوم بإنشائها، راجع استرداد بصمة إبهام شهادة.

يسرد الجدول التالي الشهادات التي تحتاجها في إعداد نظام المجموعة:

إعداد CertificateInformation الوصف
ClusterCertificate موصى بها لبيئة اختبار. هذه الشهادة مطلوبة لتأمين الاتصال بين العقد على نظام مجموعة. يمكنك استخدام شهادتين مختلفتين، أساسية وثانوية للترقية. قم بتعيين بصمة إبهام الشهادة الأساسية في قسم "Thumbprint" والثانوية في متغيرات ThumbprintSecondary.
ClusterCertificateCommonNames موصى بها لبيئة التشغيل. هذه الشهادة مطلوبة لتأمين الاتصال بين العقد على نظام مجموعة. يمكنك استخدام اسم شائع أو اسمين لشهادة نظام المجموعة. يتوافق CertificateIssuerThumbprint مع بصمة إبهام مصدر هذه الشهادة. إذا استخدمت أكثر من شهادة واحدة بالاسم الشائع نفسه، فيمكنك تحديد بصمات إبهام متعددة لمصدر الشهادة.
ClusterCertificateIssuerStores موصى بها لبيئة التشغيل. تتوافق هذه الشهادة مع مصدر شهادة نظام المجموعة. يمكنك توفير الاسم الشائع لمصدر الشهادة واسم المخزن المقابل ضمن هذا القسم بدلاً من تحديد بصمة إبهام مصدر الشهادة ضمن ClusterCertificateCommonNames. وهذا يجعل من السهل تمرير شهادات مصدر شهادة نظام المجموعة. يمكن تحديد جهات مصدر الشهادة في حالة استخدام أكثر من شهادة نظام مجموعة. يسمح IssuerCommonName الفارغ بجميع الشهادات في المخازن المقابلة المحددة ضمن X509StoreNames.
ServerCertificate موصى بها لبيئة اختبار. تُقدم هذه الشهادة إلى العميل عند محاولته الاتصال بنظام المجموعة هذا. للراحة، يمكنك اختيار استخدام الشهادة نفسها لـ ClusterCertificate وServerCertificate. يمكنك استخدام شهادتين مختلفتين، أساسية وثانوية للترقية. قم بتعيين بصمة إبهام الشهادة الأساسية في قسم "Thumbprint" والثانوية في متغيرات ThumbprintSecondary.
ServerCertificateCommonNames موصى بها لبيئة التشغيل. تُقدم هذه الشهادة إلى العميل عند محاولته الاتصال بنظام المجموعة هذا. يتوافق CertificateIssuerThumbprint مع بصمة إبهام مصدر هذه الشهادة. إذا استخدمت أكثر من شهادة واحدة بالاسم الشائع نفسه، فيمكنك تحديد بصمات إبهام متعددة لمصدر الشهادة. للراحة، يمكنك اختيار استخدام الشهادة نفسها لـ ClusterCertificateCommonNames وServerCertificateCommonNames. يمكنك استخدام اسم شائع أو اسمين لشهادة الخادم.
ServerCertificateIssuerStores موصى بها لبيئة التشغيل. تتوافق هذه الشهادة مع مصدر شهادة الخادم. يمكنك توفير الاسم الشائع لمصدر الشهادة واسم المخزن المقابل ضمن هذا القسم بدلاً من تحديد بصمة إبهام مصدر الشهادة ضمن ServerCertificateCommonNames. وهذا يجعل من السهل تمرير شهادات مصدر شهادة الخادم. يمكن تحديد جهات مصدر الشهادة في حالة استخدام أكثر من شهادة للخادم. يسمح IssuerCommonName الفارغ بجميع الشهادات في المخازن المقابلة المحددة ضمن X509StoreNames.
ClientCertificateThumbprints ثبت هذه المجموعة من الشهادات على العملاء المصدّق عليهم. يمكنك تثبيت عدد من شهادات العميل المختلفة على الأجهزة التي تريد السماح لها بالوصول إلى نظام المجموعة. عين بصمة الإبهام لكل شهادة في متغير CertificateThumbprint. إذا عينت IsAdmin إلى true، فيمكن للكمبيوتر العميل الذي تم تثبيت هذه الشهادة عليه القيام بأنشطة إدارة المسؤول على نظام المجموعة. إذا كان IsAdmin false، فيمكن للكمبيوتر العميل الذي لديه هذه الشهادة تنفيذ الإجراءات المسموح بها فقط لحقوق وصول المستخدم، وعادة ما تكون للقراءة فقط. لمزيد من المعلومات حول الأدوار، راجع التحكم في الوصول المستند إلى دور Service Fabric.
ClientCertificateCommonNames تعيين الاسم الشائع لشهادة العميل الأولى لـ CertificateCommonName. CertificateIssuerThumbprint هي بصمة إبهام مصدر هذه الشهادة. لمعرفة المزيد حول الأسماء الشائعة ومصدر الشهادة، راجع استخدام الشهادات.
ClientCertificateIssuerStores موصى بها لبيئة التشغيل. تتوافق هذه الشهادة مع جهة مصدر شهادة العميل (أدوار المسؤول وغير المسؤول على حد سواء). يمكنك توفير الاسم الشائع لمصدر الشهادة واسم المخزن المقابل ضمن هذا القسم بدلاً من تحديد بصمة إبهام مصدر الشهادة ضمن ClientCertificateCommonNames. وهذا يجعل من السهل تمرير مصدر شهادة العميل. يمكن تحديد جهات مصدر الشهادة في حالة استخدام أكثر من شهادة عميل. يسمح IssuerCommonName الفارغ بجميع الشهادات في المخازن المقابلة المحددة ضمن X509StoreNames.
ReverseProxyCertificate موصى بها لبيئة اختبار. يمكن تحديد هذه الشهادة الاختيارية إذا كنت ترغب في تأمين الوكيل العكسي. تأكد من تعيين reverseProxyEndpointPort في nodeTypes إذا كنت تستخدم هذه الشهادة.
ReverseProxyCertificateCommonNames موصى بها لبيئة التشغيل. يمكن تحديد هذه الشهادة الاختيارية إذا كنت ترغب في تأمين الوكيل العكسي. تأكد من تعيين reverseProxyEndpointPort في nodeTypes إذا كنت تستخدم هذه الشهادة.

فيما يلي مثال على تكوين نظام المجموعة حيث تم توفير شهادات نظام المجموعة والخادم والعميل. بالنسبة لشهادات المجموعة/الخادم/الوكيل العكسي لا يمكن تكوين بصمة الإبهام والاسم الشائع معاً لنفس نوع الشهادة.

{
   "name": "SampleCluster",
   "clusterConfigurationVersion": "1.0.0",
   "apiVersion": "10-2017",
   "nodes": [{
       "nodeName": "vm0",
       "metadata": "Replace the localhost below with valid IP address or FQDN",
       "iPAddress": "10.7.0.5",
       "nodeTypeRef": "NodeType0",
       "faultDomain": "fd:/dc1/r0",
       "upgradeDomain": "UD0"
   }, {
       "nodeName": "vm1",
       "metadata": "Replace the localhost with valid IP address or FQDN",
       "iPAddress": "10.7.0.4",
       "nodeTypeRef": "NodeType0",
       "faultDomain": "fd:/dc1/r1",
       "upgradeDomain": "UD1"
   }, {
       "nodeName": "vm2",
       "iPAddress": "10.7.0.6",
       "metadata": "Replace the localhost with valid IP address or FQDN",
       "nodeTypeRef": "NodeType0",
       "faultDomain": "fd:/dc1/r2",
       "upgradeDomain": "UD2"
   }],
   "properties": {
       "diagnosticsStore": {
       "metadata":  "Please replace the diagnostics store with an actual file share accessible from all cluster machines.",
       "dataDeletionAgeInDays": "7",
       "storeType": "FileShare",
       "IsEncrypted": "false",
       "connectionstring": "c:\\ProgramData\\SF\\DiagnosticsStore"
       },
       "security": {
           "metadata": "The Credential type X509 indicates this cluster is secured by using X509 certificates. The thumbprint format is d5 ec 42 3b 79 cb e5 07 fd 83 59 3c 56 b9 d5 31 24 25 42 64.",
           "ClusterCredentialType": "X509",
           "ServerCredentialType": "X509",
           "CertificateInformation": {
               "ClusterCertificateCommonNames": {
                 "CommonNames": [
                   {
                     "CertificateCommonName": "myClusterCertCommonName"
                   }
                 ],
                 "X509StoreName": "My"
               },
               "ClusterCertificateIssuerStores": [
                   {
                       "IssuerCommonName": "ClusterIssuer1",
                       "X509StoreNames" : "Root"
                   },
                   {
                       "IssuerCommonName": "ClusterIssuer2",
                       "X509StoreNames" : "Root"
                   }
               ],
               "ServerCertificateCommonNames": {
                 "CommonNames": [
                   {
                     "CertificateCommonName": "myServerCertCommonName",
                     "CertificateIssuerThumbprint": "7c fc 91 97 13 16 8d ff a8 ee 71 2b a2 f4 62 62 00 03 49 0d"
                   }
                 ],
                 "X509StoreName": "My"
               },
               "ClientCertificateThumbprints": [{
                   "CertificateThumbprint": "c4 c18 8e aa a8 58 77 98 65 f8 61 4a 0d da 4c 13 c5 a1 37 6e",
                   "IsAdmin": false
               }, {
                   "CertificateThumbprint": "71 de 04 46 7c 9e d0 54 4d 02 10 98 bc d4 4c 71 e1 83 41 4e",
                   "IsAdmin": true
               }]
           }
       },
       "reliabilityLevel": "Bronze",
       "nodeTypes": [{
           "name": "NodeType0",
           "clientConnectionEndpointPort": "19000",
           "clusterConnectionEndpointPort": "19001",
           "leaseDriverEndpointPort": "19002",
           "serviceConnectionEndpointPort": "19003",
           "httpGatewayEndpointPort": "19080",
           "applicationPorts": {
               "startPort": "20001",
               "endPort": "20031"
           },
           "ephemeralPorts": {
               "startPort": "20032",
               "endPort": "20062"
           },
           "isPrimary": true
       }
        ],
       "fabricSettings": [{
           "name": "Setup",
           "parameters": [{
               "name": "FabricDataRoot",
               "value": "C:\\ProgramData\\SF"
           }, {
               "name": "FabricLogRoot",
               "value": "C:\\ProgramData\\SF\\Log"
           }]
       }]
   }
}

تمرير الشهادة

عند استخدام اسم شائع للشهادة بدلاً من بصمة إبهام، لا يتطلب تمرير الشهادة ترقية تكوين نظام المجموعة. بالنسبة لترقيات بصمة إبهام مصدر الشهادة، تأكد من تقاطع قائمة بصمة الإبهام الجديدة مع القائمة القديمة. يجب عليك أولاً إجراء ترقية تكوين باستخدام بصمات إبهام مصدر الشهادة الجديدة، ثم تثبيت الشهادات الجديدة (كل من شهادة نظام المجموعة/ الخادم ومصدر الشهادة) في المخزن. احتفظ بشهادة المصدر القديمة في مخزن الشهادات لمدة ساعتين على الأقل بعد تثبيت مصدر الشهادة الجديدة. إذا كنت تستخدم مخازن مصدر الشهادة، فلا يلزم إجراء ترقية تكوين لتمرير مصدر الشهادة. ثبت مصدر الشهادة الجديدة بتاريخ انتهاء صلاحية أخير في مخزن الشهادات المقابل وأزل مصدر الشهادة القديمة بعد بضع ساعات.

الحصول على شهادات X.509

لتأمين الاتصال داخل نظام المجموعة، تحتاج أولاً إلى الحصول على شهادات X.509 لعقد نظام المجموعة. بالإضافة إلى ذلك، من أجل حد الاتصال بنظام المجموعة على الأجهزة/المستخدمين المُصدّق عليهم، تحتاج إلى الحصول على شهادات لأجهزة العميل وتثبيتها.

بالنسبة لنظام المجموعات التي تقوم بتشغيل أحمال عمل الإنتاج، استخدم شهادة X.509 -الموقعة من المرجع المصدق (CA) لتأمين نظام المجموعة. لمزيد من المعلومات حول كيفية الحصول على هذه الشهادات، راجع كيفية الحصول على شهادة.

هناك عدد من الخصائص التي يجب أن تحتوي عليها الشهادة لتعمل بشكل صحيح:

  • يجب أن يكون موفر الشهادة RSA المُحسّن وموفر خدمات التشفير AES من Microsoft

  • عند إنشاء مفتاح RSA، تأكد من أن المفتاح هو 2048 بت.

  • يحتوي ملحق استخدام المفتاح على قيمة توقيع رقمي، تشفير المفتاح (a0)

  • يحتوي ملحق استخدام المفتاح المُحسّن على قيم مصادقة الخادم (OID: 1.3.6.1.5.5.7.3.1)ومصادقة العميل (OID: 1.3.6.1.5.5.7.3.2)

بالنسبة إلى أنظمة المجموعات المُستخدمة لأغراض الاختبار، يمكنك اختيار استخدام شهادات موقعة ذاتياً.

للحصول على أسئلة إضافية، راجع أسئلة الشهادة المتداولة.

اختياري: إنشاء شهادات موقعة ذاتياً

إحدى الطرق لإنشاء شهادات موقعة ذاتياً يمكن تأمينها بشكل صحيح هي استخدام النص CertSetup.ps1 في مجلد Service Fabric SDK في الدليل C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\Secure. قم بتحرير هذا الملف لتغيير اسم الشهادة الافتراضي. (ابحث عن القيمة CN = ServiceFabricDevClusterCert.) شغل البرنامج النصي كـ .\CertSetup.ps1 -Install.

الآن تصدير الشهادة إلى ملف .pfx بكلمة مرور محمية. أولاً، احصل على بصمة إبهام الشهادة.

  1. من القائمة "Start"، شغل "Manage computer certificates".

  2. انتقل إلى المجلد "Local Computer\Personal"، وابحث عن الشهادة التي أنشأتها.

  3. انقر نقراً مزدوجاً فوق الشهادة لفتحها، وحدد علامة التبويب "Details"، ثم مرر لأسفل إلى حقل "Thumbprint".

  4. أزل المسافات، وانسخ قيمة "thumbprint" إلى أمر PowerShell التالي.

  5. قم بتغيير قيمة String إلى كلمة مرور آمنة مناسبة لحمايتها، وشغل ما يلي في PowerShell:

    $pswd = ConvertTo-SecureString -String "1234" -Force –AsPlainText
    Get-ChildItem -Path cert:\localMachine\my\<Thumbprint> | Export-PfxCertificate -FilePath C:\mypfx.pfx -Password $pswd
    
  6. للاطلاع على تفاصيل شهادة مثبتة على الجهاز، شغل أمر PowerShell التالي:

    $cert = Get-Item Cert:\LocalMachine\My\<Thumbprint>
    Write-Host $cert.ToString($true)
    

بدلاً من ذلك، إذا كان لديك اشتراك Azure، فاتبع الخطوات الواردة في إنشاء نظام مجموعة Service Fabric باستخدام Azure Resource Manager.

تثبيت الشهادات

بعد حصولك على شهادات، يمكنك تثبيتها على عقد نظام المجموعة. تحتاج العقد إلى تثبيت أحدث Windows PowerShell 3.x عليها. كرر هذه الخطوات على كل عقدة لكل من شهادات نظام المجموعة والخادم وأي شهادات ثانوية.

  1. انسخ ملف .pfx أو الملفات إلى العقدة.

  2. افتح نافذة "PowerShell" كمسؤول، وأدخل الأوامر التالية. استبدل "$pswd" بكلمة المرور التي استخدمتها لإنشاء هذه الشهادة. استبدل "$PfxFilePath" بالمسار الكامل لـ .pfx المنسوخ إلى هذه العقدة.

    $pswd = "1234"
    $PfxFilePath ="C:\mypfx.pfx"
    Import-PfxCertificate -Exportable -CertStoreLocation Cert:\LocalMachine\My -FilePath $PfxFilePath -Password (ConvertTo-SecureString -String $pswd -AsPlainText -Force)
    
  3. الآن عيّن عنصر التحكم بالوصول على هذه الشهادة حتى يمكن لعملية Service Fabric، التي تعمل ضمن حساب Network Service، استخدامها عن طريق تشغيل البرنامج النصي التالي. قم بتوفير بصمة إبهام الشهادة وخدمة الشبكة لحساب الخدمة. يمكنك التحقق من صحة قوائم التحكم بالوصول الموجودة على الشهادة عن طريق فتح الشهادة في "Start">"Manage computer certificates" والنظر في "All Tasks">"Manage Private Keys".

    param
    (
    [Parameter(Position=1, Mandatory=$true)]
    [ValidateNotNullOrEmpty()]
    [string]$pfxThumbPrint,
    
    [Parameter(Position=2, Mandatory=$true)]
    [ValidateNotNullOrEmpty()]
    [string]$serviceAccount
    )
    
    $cert = Get-ChildItem -Path cert:\LocalMachine\My | Where-Object -FilterScript { $PSItem.ThumbPrint -eq $pfxThumbPrint; }
    
    # Specify the user, the permissions, and the permission type
    $permission = "$($serviceAccount)","FullControl","Allow" # "NT AUTHORITY\NetworkService" is the service account
    $accessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $permission
    
    # Location of the machine-related keys
    $keyPath = Join-Path -Path $env:ProgramData -ChildPath "\Microsoft\Crypto\RSA\MachineKeys"
    $keyName = $cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
    $keyFullPath = Join-Path -Path $keyPath -ChildPath $keyName
    
    # Get the current ACL of the private key
    $acl = (Get-Item $keyFullPath).GetAccessControl('Access')
    
    # Add the new ACE to the ACL of the private key
    $acl.SetAccessRule($accessRule)
    
    # Write back the new ACL
    Set-Acl -Path $keyFullPath -AclObject $acl -ErrorAction Stop
    
    # Observe the access rights currently assigned to this certificate
    get-acl $keyFullPath| fl
    
  4. كرر الخطوات السابقة لكل شهادة خادم. يمكنك أيضاً استخدام هذه الخطوات لتثبيت شهادات العميل على الأجهزة التي تريد السماح لها بالوصول إلى نظام المجموعة.

إنشاء نظام المجموعة الآمن

بعد تكوين قسم الأمان من الملف ClusterConfig.X509.MultiMachine.json، يمكنك المتابعة إلى قسم "Create the cluster" لتكوين العقد وإنشاء نظام مجموعة مستقل. تذكر استخدام الملف ClusterConfig.X509.MultiMachine.json أثناء إنشاء نظام المجموعة. على سبيل المثال، قد يبدو الأمر كما يلي:

.\CreateServiceFabricCluster.ps1 -ClusterConfigFilePath .\ClusterConfig.X509.MultiMachine.json

بعد تشغيل نظام المجموعة Windows المستقل الآمن بنجاح وإعداد العملاء المُصدّق عليهم للاتصال، اتبع الخطوات الموجودة في القسم "Connect to a cluster using PowerShell" للاتصال به. على سبيل المثال:

$ConnectArgs = @{  ConnectionEndpoint = '10.7.0.5:19000';  X509Credential = $True;  StoreLocation = 'LocalMachine';  StoreName = "MY";  ServerCertThumbprint = "057b9544a6f2733e0c8d3a60013a58948213f551";  FindType = 'FindByThumbprint';  FindValue = "057b9544a6f2733e0c8d3a60013a58948213f551"   }
Connect-ServiceFabricCluster $ConnectArgs

يمكنك بعد ذلك تشغيل أوامر PowerShell الأخرى للعمل مع نظام المجموعة هذا. على سبيل المثال، يمكنك تشغيل Get-ServiceFabricNode لإظهار قائمة بالعقد على نظام المجموعة الآمن هذا.

لإزالة نظام المجموعة، اتصل بالعقدة الموجودة على نظام المجموعة حيث قمت بتنزيل حزمة Service Fabric، وافتح سطر أوامر، وانتقل إلى مجلد الحزمة. الآن قم بتشغيل الأمر التالي:

.\RemoveServiceFabricCluster.ps1 -ClusterConfigFilePath .\ClusterConfig.X509.MultiMachine.json

ملاحظة

قد يمنع تكوين الشهادة غير الصحيح ظهور نظام المجموعة أثناء التوزيع. لتشخيص مشكلات الأمان ذاتياً، ابحث في مجموعة عارض الأحداث سجلات "Applications and Services Logs">"Microsoft-Service Fabric".