اتصال وسيط MQTT الآمن باستخدام BrokerListener

هام

معاينة عمليات Azure IoT - التي تم تمكينها بواسطة Azure Arc قيد المعاينة حاليا. يجب عدم استخدام برنامج المعاينة هذا في بيئات الإنتاج.

ستحتاج إلى نشر تثبيت Azure IoT Operations جديد عند توفير إصدار متوفر بشكل عام. لن تتمكن من ترقية تثبيت معاينة.

للحصول على الشروط القانونية التي تنطبق على ميزات Azure الموجودة في الإصدار التجريبي، أو المعاينة، أو التي لم يتم إصدارها بعد في التوفر العام، راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure.

لتخصيص الوصول إلى الشبكة والأمان، استخدم مورد BrokerListener . يتوافق المستمع مع نقطة نهاية الشبكة التي تعرض الوسيط للشبكة. يمكنك الحصول على واحد أو أكثر من موارد BrokerListener لكل مورد وسيط ، وبالتالي منافذ متعددة مع تحكم وصول مختلف لكل منها.

يمكن أن يكون لكل منفذ وحدة استماع قواعد المصادقة والتخويل الخاصة به التي تحدد من يمكنه الاتصال بوحدة الاستماع والإجراءات التي يمكنهم تنفيذها على الوسيط. يمكنك استخدام موارد BrokerAuthentication و BrokerAuthorization لتحديد نهج التحكم في الوصول لكل وحدة استماع. تتيح لك هذه المرونة ضبط أذونات وأدوار عملاء MQTT، بناء على احتياجاتهم وحالات الاستخدام الخاصة بهم.

تلميح

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

تتمتع وحدات الاستماع بالخصائص التالية:

  • يمكنك الحصول على ما يصل إلى ثلاثة مستمعين. وحدة استماع واحدة لكل نوع خدمة من loadBalancerأو clusterIpأو nodePort. الوسيط الافتراضي BrokerListener المسمى default هو نوع clusterIpالخدمة .
  • يدعم كل وحدة استماع منافذ متعددة
  • مراجع BrokerAuthentication و BrokerAuthorization لكل منفذ
  • تكوين TLS لكل منفذ
  • يجب أن تكون أسماء الخدمة فريدة
  • لا يمكن أن تتعارض المنافذ مع المستمعين المختلفين

للحصول على قائمة بالإعدادات المتوفرة، راجع مرجع Broker Listener API.

BrokerListener الافتراضي

عند نشر Azure IoT Operations Preview، ينشئ النشر أيضا مورد BrokerListener المسمى default azure-iot-operations في مساحة الاسم. يرتبط هذا المستمع بمورد الوسيط الافتراضي المسمى default الذي تم إنشاؤه أيضا أثناء النشر. يعرض المستمع الافتراضي الوسيط على المنفذ 18883 مع تمكين مصادقة TLS وST. تتم إدارة شهادة TLS تلقائيا بواسطة cert-manager. يتم تعطيل التخويل بشكل افتراضي.

لعرض وحدة الاستماع أو تحريرها:

  1. في مدخل Microsoft Azure، انتقل إلى مثيل عمليات IoT.

  2. ضمن موارد عمليات Azure IoT، حدد MQTT Broker.

    لقطة شاشة باستخدام مدخل Microsoft Azure لعرض تكوين MQTT لعمليات Azure IoT.

  3. من قائمة مستمع الوسيط، حدد وحدة الإصغاء الافتراضية .

    لقطة شاشة باستخدام مدخل Microsoft Azure لعرض مستمع الوسيط الافتراضي أو تحريره.

  4. راجع إعدادات وحدة الاستماع وقم بإجراء أي تغييرات حسب الحاجة.

إنشاء مستمعين وسيط جديدين

يوضح هذا المثال كيفية إنشاء مورد BrokerListener جديد يسمى loadbalancer-listener لمورد Broker. يعرف مورد BrokerListener منفذين يقبلان اتصالات MQTT من العملاء.

  • يستمع المنفذ الأول على المنفذ 1883 دون إيقاف تشغيل TLS والمصادقة. يمكن للعملاء الاتصال بالوسيط دون تشفير أو مصادقة.
  • يستمع المنفذ الثاني على المنفذ 18883 مع تمكين TLS والمصادقة. يمكن للعملاء المصادق عليهم فقط الاتصال بالوسيط باستخدام تشفير TLS. تم تعيين TLS إلى automatic، ما يعني أن وحدة الاستماع تستخدم مدير الشهادات للحصول على شهادة الخادم وتجديدها.
  1. في مدخل Microsoft Azure، انتقل إلى مثيل عمليات IoT.

  2. ضمن موارد عمليات Azure IoT، حدد MQTT Broker.

  3. حدد مستمع وسيط MQTT لإنشاء LoadBalancer>. يمكنك إنشاء وحدة استماع واحدة فقط لكل نوع خدمة. إذا كان لديك وحدة استماع من نفس نوع الخدمة، يمكنك إضافة المزيد من المنافذ إلى وحدة الاستماع الموجودة.

    لقطة شاشة باستخدام مدخل Microsoft Azure لإنشاء وسيط MQTT لمستمع موازن التحميل.

    أدخل الإعدادات التالية:

    الإعدادات الوصف
    الاسم اسم مورد BrokerListener.
    اسم الخدمة اسم خدمة Kubernetes المقترنة ب BrokerListener.
    نوع الخدمة نوع خدمة الوسيط، مثل LoadBalancer أو NodePort أو ClusterIP.
    المنفذ رقم المنفذ الذي يستمع إليه BrokerListener لاتصالات MQTT.
    المصادقة مرجع مورد المصادقة.
    التصريح مرجع مورد التخويل.
    TLS يشير إلى ما إذا كان TLS ممكنا للاتصال الآمن. يمكن تعيينه إلى تلقائي أو يدوي.
  4. حدد إنشاء وحدة استماع.

تكوين TLS مع الإدارة التلقائية للشهادات

لتمكين TLS مع الإدارة التلقائية للشهادات، حدد إعدادات TLS على منفذ وحدة الاستماع.

التحقق من تثبيت مدير الشهادات

باستخدام الإدارة التلقائية للشهادات، يمكنك استخدام مدير الشهادات لإدارة شهادة خادم TLS. بشكل افتراضي، يتم تثبيت cert-manager جنبا إلى جنب مع Azure IoT Operations Preview في azure-iot-operations مساحة الاسم بالفعل. تحقق من التثبيت قبل المتابعة.

  1. استخدم kubectl للتحقق من الحاويات المطابقة لتسميات تطبيق cert-manager.

    kubectl get pods --namespace azure-iot-operations -l 'app in (cert-manager,cainjector,webhook)'
    
    NAME                                           READY   STATUS    RESTARTS       AGE
    aio-cert-manager-64f9548744-5fwdd              1/1     Running   4 (145m ago)   4d20h
    aio-cert-manager-cainjector-6c7c546578-p6vgv   1/1     Running   4 (145m ago)   4d20h
    aio-cert-manager-webhook-7f676965dd-8xs28      1/1     Running   4 (145m ago)   4d20h
    
  2. إذا رأيت pods تظهر على أنها جاهزة ومشغلة، يتم تثبيت cert-manager وجاهز للاستخدام.

تلميح

لمزيد من التحقق من التثبيت، تحقق من وثائق cert-manager للتحقق من التثبيت. تذكر استخدام azure-iot-operations مساحة الاسم.

إنشاء مصدر لشهادة خادم TLS

يحدد مورد مصدر إدارة الشهادات كيفية إصدار الشهادات تلقائيا. يدعم Cert-manager العديد من أنواع المصدرين في الأصل. كما أنه يدعم نوع مصدر خارجي لتوسيع الوظائف خارج المصدرين المدعومين أصلا. يمكن استخدام وسيط MQTT مع أي نوع من مصدري الشهادات.

هام

أثناء النشر الأولي، يتم تثبيت عمليات Azure IoT مع مصدر افتراضي لشهادات خادم TLS. يمكنك استخدام مصدر البيانات هذا للتطوير والاختبار. لمزيد من المعلومات، راجع المرجع المصدق الجذري الافتراضي ومصدر الشهادة مع عمليات Azure IoT. الخطوات أدناه مطلوبة فقط إذا كنت تريد استخدام مصدر آخر.

يختلف نهج إنشاء المصدر وفقا للسيناريو الخاص بك. تسرد الأقسام التالية أمثلة لمساعدتك على البدء.

مصدر CA مفيد للتطوير والاختبار. يجب تكوينه بشهادة ومفتاح خاص مخزن في سر Kubernetes.

إعداد الشهادة الجذر كبيانات سرية ل Kubernetes

إذا كان لديك شهادة CA موجودة، فبادر بإنشاء سر Kubernetes باستخدام شهادة المرجع المصدق وملفات PEM الخاصة. قم بتشغيل الأمر التالي وقمت بإعداد الشهادة الجذر كسر Kubernetes ويمكن تخطي القسم التالي.

kubectl create secret tls test-ca --cert tls.crt --key tls.key -n azure-iot-operations

إذا لم يكن لديك شهادة CA، يمكن لمدير الشهادات إنشاء شهادة المرجع المصدق الجذر لك. يعرف استخدام مدير الشهادات لإنشاء شهادة المرجع المصدق الجذر باسم تمهيد تشغيل مصدر CA بشهادة موقعة ذاتيا.

  1. ابدأ بإنشاء ca.yaml:

    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: selfsigned-ca-issuer
      namespace: azure-iot-operations
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: selfsigned-ca-cert
      namespace: azure-iot-operations
    spec:
      isCA: true
      commonName: test-ca
      secretName: test-ca
      issuerRef:
        # Must match Issuer name above
        name: selfsigned-ca-issuer
        # Must match Issuer kind above
        kind: Issuer
        group: cert-manager.io
      # Override default private key config to use an EC key
      privateKey:
        rotationPolicy: Always
        algorithm: ECDSA
        size: 256
    
  2. إنشاء شهادة CA الموقعة ذاتيا باستخدام الأمر التالي:

    kubectl apply -f ca.yaml
    

ينشئ مدير الشهادات شهادة CA باستخدام الإعدادات الافتراضية الخاصة به. يمكن تغيير خصائص هذه الشهادة عن طريق تعديل مواصفات الشهادة. راجع وثائق مدير الشهادات للحصول على قائمة بالخيارات الصالحة.

توزيع الشهادة الجذر

يخزن المثال السابق شهادة المرجع المصدق في سر Kubernetes يسمى test-ca. يمكن استرداد الشهادة بتنسيق PEM من السر وتخزينها في ملف ca.crt باستخدام الأمر التالي:

kubectl get secret test-ca -n azure-iot-operations -o json | jq -r '.data["tls.crt"]' | base64 -d > ca.crt

يجب توزيع هذه الشهادة والوثوق بها من قبل جميع العملاء. على سبيل المثال، استخدم --cafile علامة لعميل mosquitto.

إنشاء مصدر الشهادة استنادا إلى شهادة المرجع المصدق

يحتاج مدير الشهادات إلى مصدر استنادا إلى شهادة المرجع المصدق التي تم إنشاؤها أو استيرادها في الخطوة السابقة. قم بإنشاء الملف التالي ك issuer-ca.yaml:

apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: my-issuer
  namespace: azure-iot-operations
spec:
  ca:
    # Must match secretName of generated or imported CA cert
    secretName: test-ca

إنشاء المصدر باستخدام الأمر التالي:

kubectl apply -f issuer-ca.yaml

يقوم الأمر السابق بإنشاء مصدر لإصدار شهادات خادم TLS. لاحظ اسم المصدر ونوعه. في المثال، الاسم my-issuer والنوع Issuer. يتم تعيين هذه القيم في مورد BrokerListener لاحقا.

تمكين إدارة شهادات TLS التلقائية لمنفذ

فيما يلي مثال لمورد BrokerListener الذي يمكن TLS على المنفذ 8884 مع الإدارة التلقائية للشهادات.

  1. في مدخل Microsoft Azure، انتقل إلى مثيل عمليات IoT.

  2. ضمن موارد عمليات Azure IoT، حدد MQTT Broker.

  3. حدد وحدة استماع أو أنشئها. يمكنك إنشاء وحدة استماع واحدة فقط لكل نوع خدمة. إذا كان لديك وحدة استماع من نفس نوع الخدمة، يمكنك إضافة المزيد من المنافذ إلى وحدة الاستماع الموجودة.

  4. يمكنك إضافة إعدادات TLS إلى وحدة الاستماع عن طريق تحديد TLS على منفذ موجود أو عن طريق إضافة منفذ جديد.

    لقطة شاشة باستخدام مدخل Microsoft Azure لإنشاء وسيط MQTT لمستمع موازن التحميل مع شهادات TLS التلقائية.

    أدخل الإعدادات التالية:

    الإعدادات ‏‏الوصف
    المنفذ رقم المنفذ الذي يستمع إليه BrokerListener لاتصالات MQTT. مطلوب.
    المصادقة مرجع مورد المصادقة.
    التصريح مرجع مورد التخويل.
    TLS حدد الزر إضافة.
    اسم المصدر اسم مصدر مدير الشهادات. مطلوب.
    نوع المصدر نوع مصدر مدير الشهادات. مطلوب.
    مجموعة المصدر مجموعة من مصدر مدير الشهادات. مطلوب.
    خوارزمية المفتاح الخاص خوارزمية المفتاح الخاص.
    نهج تدوير المفتاح الخاص نهج تدوير المفتاح الخاص.
    أسماء DNS أسماء بديلة لموضوع DNS للشهادة.
    عناوين IP عناوين IP للأسماء البديلة للموضوع للشهادة.
    اسم السر بيانات Kubernetes السرية التي تحتوي على شهادة عميل X.509.
    المدة إجمالي عمر شهادة خادم TLS الافتراضية إلى 90 يوما.
    التجديد قبل متى تبدأ تجديد الشهادة.
  5. حدد حفظ لحفظ إعدادات TLS.

الاتصال بالوسيط باستخدام TLS

بمجرد تكوين شهادة الخادم، يتم تمكين TLS. للاختبار باستخدام mosquitto:

mosquitto_pub -h $HOST -p 8884 -V mqttv5 -i "test" -t "test" -m "test" --cafile ca.crt

--cafile تمكن الوسيطة TLS على عميل mosquitto وتحدد أن العميل يجب أن يثق في جميع شهادات الخادم الصادرة عن الملف المحدد. يجب تحديد ملف يحتوي على مصدر شهادة خادم TLS المكونة.

استبدل $HOST بالمضيف المناسب:

  • إذا كان الاتصال من داخل نفس المجموعة، فاستبدل باسم الخدمة المحدد (my-new-tls-listener على سبيل المثال) أو الخدمة CLUSTER-IP.
  • إذا كان الاتصال من خارج نظام المجموعة، فإن الخدمة EXTERNAL-IP.

تذكر تحديد أساليب المصادقة إذا لزم الأمر.

المرجع المصدق الجذري الافتراضي ومصدر الشهادة

لمساعدتك في البدء، يتم نشر عمليات Azure IoT باستخدام المرجع المصدق الجذر الافتراضي "quickstart" ومصدر شهادات خادم TLS. يمكنك استخدام مصدر البيانات هذا للتطوير والاختبار. لمزيد من المعلومات، راجع المرجع المصدق الجذري الافتراضي ومصدر شهادات خادم TLS.

للإنتاج، يجب تكوين مصدر CA بشهادة من مرجع مصدق موثوق به، كما هو موضح في الأقسام السابقة.

تكوين TLS مع إدارة الشهادات اليدوية

لتكوين وسيط MQTT يدويا لاستخدام شهادة TLS معينة، حددها في مورد BrokerListener مع مرجع إلى سر Kubernetes. ثم انشره باستخدام kubectl. تعرض هذه المقالة مثالا لتكوين TLS مع شهادات موقعة ذاتيا للاختبار.

إنشاء مرجع مصدق باستخدام الخطوة CLI

Step هو مدير شهادات يمكنه الحصول عليك وتشغيله بسرعة عند إنشاء المرجع المصدق الخاص بك وإدارته.

  1. تثبيت Step CLI وإنشاء شهادة ومفتاح مرجع مصدق جذر (CA).

    step certificate create --profile root-ca "Example Root CA" root_ca.crt root_ca.key
    
  2. إنشاء شهادة CA وسيطة ومفتاح موقع من قبل المرجع المصدق الجذر.

    step certificate create --profile intermediate-ca "Example Intermediate CA" intermediate_ca.crt intermediate_ca.key \
    --ca root_ca.crt --ca-key root_ca.key
    

إنشاء شهادة الخادم

استخدم Step CLI لإنشاء شهادة خادم من الموقعة من قبل المرجع المصدق الوسيط.

step certificate create mqtts-endpoint mqtts-endpoint.crt mqtts-endpoint.key \
--profile leaf \
--not-after 8760h \
--san mqtts-endpoint \
--san localhost \
--ca intermediate_ca.crt --ca-key intermediate_ca.key \
--no-password --insecure

هنا، mqtts-endpoint و localhost هي الأسماء البديلة للموضوع (SANs) للواجهة الأمامية للوسيط MQTT في Kubernetes والعملاء المحليين، على التوالي. للاتصال عبر الإنترنت، أضف --san مع عنوان IP خارجي. --no-password --insecure يتم استخدام العلامات للاختبار لتخطي مطالبات كلمة المرور وتعطيل حماية كلمة المرور للمفتاح الخاص لأنه مخزن في سر Kubernetes. للإنتاج، استخدم كلمة مرور وقم بتخزين المفتاح الخاص في موقع آمن مثل Azure Key Vault.

متطلبات خوارزمية مفتاح الشهادة

يتم دعم كل من مفاتيح EC وRSA، ولكن يجب أن تستخدم جميع الشهادات في السلسلة نفس خوارزمية المفتاح. إذا قمت باستيراد شهادات المرجع المصدق الخاصة بك، فتأكد من أن شهادة الخادم تستخدم نفس خوارزمية المفتاح مثل CAs.

استيراد سلسلة شهادات الخادم كبيانات سرية ل Kubernetes

  1. إنشاء سلسلة شهادات خادم كاملة، حيث يكون ترتيب الشهادات مهما: شهادة الخادم هي الأولى في الملف، الوسيطة هي الثانية.

    cat  mqtts-endpoint.crt intermediate_ca.crt  > server_chain.crt
    
  2. إنشاء سر Kubernetes مع سلسلة شهادات الخادم ومفتاح الخادم باستخدام kubectl.

    kubectl create secret tls server-cert-secret -n azure-iot-operations \
    --cert server_chain.crt \
    --key mqtts-endpoint.key
    

تمكين إدارة شهادات TLS اليدوية لمنفذ

فيما يلي مثال لمورد BrokerListener الذي يمكن TLS على المنفذ 8884 مع إدارة الشهادات اليدوية.

  1. في مدخل Microsoft Azure، انتقل إلى مثيل عمليات IoT.

  2. ضمن موارد عمليات Azure IoT، حدد MQTT Broker.

  3. حدد وحدة استماع أو أنشئها. يمكنك إنشاء وحدة استماع واحدة فقط لكل نوع خدمة. إذا كان لديك وحدة استماع من نفس نوع الخدمة، يمكنك إضافة المزيد من المنافذ إلى وحدة الاستماع الموجودة.

  4. يمكنك إضافة إعدادات TLS إلى وحدة الاستماع عن طريق تحديد TLS على منفذ موجود أو عن طريق إضافة منفذ جديد.

    لقطة شاشة باستخدام مدخل Microsoft Azure لإنشاء وسيط MQTT لمستمع موازن التحميل مع شهادات TLS اليدوية.

    أدخل الإعدادات التالية:

    الإعدادات ‏‏الوصف
    المنفذ رقم المنفذ الذي يستمع إليه BrokerListener لاتصالات MQTT. مطلوب.
    المصادقة مرجع مورد المصادقة.
    التصريح مرجع مورد التخويل.
    TLS حدد الزر إضافة.
    اسم السر بيانات Kubernetes السرية التي تحتوي على شهادة عميل X.509.
  5. حدد حفظ لحفظ إعدادات TLS.

الاتصال بالوسيط باستخدام TLS

لاختبار اتصال TLS مع عميل mosquitto، انشر رسالة ومرر شهادة المرجع المصدق الجذر في المعلمة --cafile.

mosquitto_pub -d -h localhost -p 8885 -i "my-client" -t "test-topic" -m "Hello" --cafile root_ca.crt
Client my-client sending CONNECT
Client my-client received CONNACK (0)
Client my-client sending PUBLISH (d0, q0, r0, m1, 'test-topic', ... (5 bytes))
Client my-client sending DISCONNECT

تلميح

لاستخدام localhost، يجب أن يكون المنفذ متوفرا على الجهاز المضيف. على سبيل المثال، kubectl port-forward svc/mqtts-endpoint 8885:8885 -n azure-iot-operations مع بعض توزيعات Kubernetes مثل K3d، يمكنك إضافة منفذ معاد توجيهه باستخدام k3d cluster edit $CLUSTER_NAME --port-add 8885:8885@loadbalancer.

إشعار

للاتصال بالوسيط، تحتاج إلى توزيع جذر الثقة على العملاء، والمعروف أيضا باسم حزمة الثقة. في هذه الحالة، جذر الثقة هو المرجع المصدق الجذر الموقع ذاتيا الذي تم إنشاؤه CLI الخطوة. توزيع جذر الثقة مطلوب للعميل للتحقق من سلسلة شهادات الخادم. إذا كان عملاء MQTT هم أحمال العمل على مجموعة Kubernetes، فستحتاج أيضا إلى إنشاء ConfigMap مع المرجع المصدق الجذر وتركيبه في جراب الخاص بك.

تذكر تحديد اسم المستخدم وكلمة المرور وما إلى ذلك إذا تم تمكين مصادقة وسيط MQTT.

استخدام IP خارجي لشهادة الخادم

للاتصال ب TLS عبر الإنترنت، يجب أن يكون لشهادة خادم وسيط MQTT اسم المضيف الخارجي الخاص به ك SAN. في الإنتاج، عادة ما يكون هذا اسم DNS أو عنوان IP معروفا. ومع ذلك، أثناء التطوير/الاختبار، قد لا تعرف اسم المضيف أو IP الخارجي الذي تم تعيينه قبل النشر. لحل هذه المشكلة، انشر وحدة الإصغاء بدون شهادة الخادم أولا، ثم أنشئ شهادة الخادم والبيانات السرية باستخدام عنوان IP الخارجي، وأخيرا قم باستيراد السر إلى وحدة الاستماع.

إذا حاولت نشر مثال وحدة إصغاء manual-tls-listener TLS ولكن سر server-cert-secret Kubernetes المشار إليه غير موجود، يتم إنشاء الخدمة المقترنة، ولكن لا تبدأ وحدات الجراب. يتم إنشاء الخدمة لأن المشغل يحتاج إلى حجز IP الخارجي للمستمع.

kubectl get svc mqtts-endpoint -n azure-iot-operations
NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
mqtts-endpoint         LoadBalancer   10.X.X.X        172.X.X.X     8885:30674/TCP      1m15s

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

kubectl logs -l app=health-manager -n azure-iot-operations
...
<6>2023-11-06T21:36:13.634Z [INFO] [1] - Server certificate server-cert-secret not found. Awaiting creation of secret.

إشعار

بشكل عام، في نظام موزع، سجلات pods ليست محددة ويجب استخدامها بحذر. الطريقة الصحيحة لعرض معلومات مثل هذه هي من خلال أحداث Kubernetes وحالة الموارد المخصصة، وهي في التراكم. ضع في اعتبارك الخطوة السابقة كحل بديل مؤقت.

على الرغم من أن القرون الأمامية ليست أعلى، فإن IP الخارجي متاح بالفعل.

kubectl get svc mqtts-endpoint -n azure-iot-operations
NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
mqtts-endpoint         LoadBalancer   10.X.X.X        172.X.X.X     8885:30674/TCP      1m15s

من هنا، اتبع نفس الخطوات السابقة لإنشاء شهادة خادم باستخدام عنوان IP الخارجي هذا في --san وإنشاء سر Kubernetes بنفس الطريقة. بمجرد إنشاء السر، يتم استيراده تلقائيا إلى وحدة الاستماع.