تكامل توقيع رمز السحابة مع CircleCI

يوضح هذا البرنامج التعليمي كيفية دمج eSigner مع CircleCI للتوقيع الآلي للرمز.

eSigner هي بيئة سحابية لـ SSL.com لتوقيع الكود. يتم استضافة مفاتيح التوقيع والشهادات بشكل آمن في السحابة بواسطة SSL.com ويمكن الوصول إليها للتوقيع من أي جهاز متصل بالإنترنت ، مما يجعل eSigner أحد أفضل الأنظمة الأساسية لتوقيع رمز المؤسسة. تتضمن مجموعة أدوات eSigner CodeSignTool وهو ملف الأداة المساعدة لسطر الأوامر لـ توقيع رمز EV الشهادات ومثالية لإنشاء عمليات توقيع آلية في العديد من منصات التكامل المستمر / التسليم المستمر (CI / CD) بما في ذلك CircleCI. 

SSL.com's EV توقيع الكود تساعد الشهادات في حماية التعليمات البرمجية الخاصة بك من العبث والتلاعب غير المصرح به بأعلى مستوى من التحقق من الصحة ، وهي متاحة مقابل أقل من $ 249 سنويا. يمكنك أيضا استخدام شهادة توقيع رمز EV الخاص بك على نطاق واسع في السحابة باستخدام eSigner.

اطلب الان

متغيرات البيئة

  • USERNAME: اسم مستخدم حساب SSL.com. (مطلوب)
  • كلمة السر: كلمة مرور حساب SSL.com (مطلوب)
  • CREDENTIAL_ID: معرف الاعتماد لتوقيع الشهادة. إذا تم حذف credential_id وكان المستخدم لديه شهادة توقيع رمز eSigner واحدة فقط ، فسيتم تعيين CodeSignTool افتراضيًا لذلك. إذا كان المستخدم لديه أكثر من شهادة توقيع رمز ، فإن هذه المعلمة إلزامية. (مطلوب)
  • TOTP_SECRET: OAuth TOTP Secret. يمكنك الوصول إلى معلومات مفصلة عن https://www.ssl.com/how-to/automate-esigner-ev-code-signing (مطلوب)
  • البيئة_NAME : بيئة "TEST" أو "PROD". (مطلوب)

المدخلات

  • input_file_path: مسار كائن التعليمات البرمجية المراد توقيعه. (مطلوب)
  • الإخراج_dir_path: الدليل حيث سيتم كتابة كائن (كائنات) التعليمات البرمجية الموقعة. إذا تم حذف output_path ، فسيتم استبدال الملف المحدد في -file_path بالملف الموقع.

تحضير مكونات سير العمل (توقيع DLL التعليمات البرمجية لـ .NET)

  1. قم بإنشاء مجلد .circleci

في مساحة عمل توقيع التعليمات البرمجية الخاصة بك ، قم بإنشاء ملف مجلد .circleci. تحتها ، قم بإنشاء ملف ملف config.yml.

  1. اضبط إصدار CI
النسخة: 2.1
 
  1.  استدعاء الوظائف من خلال مهام سير العمل. تنظم مهام سير العمل مجموعة من الوظائف ليتم تشغيلها. تم تكوين الوظائف لخط الأنابيب هذا أدناه

انظر: https://circleci.com/docs/2.0/configuration-reference/#workflows

سير العمل:
 
  1. اكتب اسم سير العمل.
  دوت نت:
 
  1. داخل سير العمل ، أنت تحدد الوظائف التي تريد تشغيلها.
 الوظائف: - بناء - شاخصة: يتطلب: - بناء
 

حدد مرحلة البناء

  1. حدد وظيفة ليتم استدعاؤها لاحقًا في سير العمل.

 (انظر: https://circleci.com/docs/2.0/configuration-reference/#jobs)

الوظائف: بناء:

 

  1. خلق متغير البيئة
  • تُستخدم متغيرات البيئة لجعل العينات أكثر قابلية للقراءة. في لقطة الشاشة أعلاه لأحد أمثلة سير عمل التوقيع ، تم حذف PROJECT_NAME و PROJECT_VERSION و DOTNET_VERSION اختياريًا. التوقيع لا يزال من الممكن المضي قدما حتى مع هذه الإغفالات.  
  البيئة: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 WORKSPACE: / home / circleci / project

 

  1.  تحديد منفذ Docker: (https://circleci.com/docs/2.0/executor-types/)

    # يمكنك تحديد صورة من Dockerhub أو استخدام إحدى صورنا المريحة من مركز مطوري CircleCI.

 عامل ميناء: - الصورة: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. ضع دليل العمل للوظيفة
  work_directory: / home / circleci / project

 

  1. أضف خطوات إلى الوظيفة

    انظر: https://circleci.com/docs/2.0/configuration-reference/#steps

  خطوات:

 

  1.  تحقق من الكود المصدري حتى يتمكن سير العمل من الوصول إليه.
    - الدفع

 

  1. إنشاء دليل قطعة أثرية لتخزين الملفات الأثرية الموقعة وغير الموقعة
    - تشغيل: الاسم: أمر إنشاء دليل القطع الأثرية: | mkdir -p $ {WORKSPACE} / artifacts mkdir -p $ {WORKSPACE} / packs

 

  1.  بناء مشروع أو حل dotnet وجميع تبعياته.
      - تشغيل: الاسم: إنشاء أمر مشروع Dotnet: dotnet build dotnet / $ {PROJECT_NAME} .csproj -c Release

 

  1. نسخ الأداة إلى دليل القطع الأثرية
  • في سير عمل مثال التوقيع المكتوب هذا ، تم إنشاء أنواع متعددة من المشاريع. هذا هو سبب الاحتفاظ بملفات أنواع المشاريع المختلفة عن طريق إنشاء مجلدات فرعية. تم إنشاء مجلد فرعي باسم "dotnet" لمشاريع Dotnet. في لقطة الشاشة التجريبية أعلاه ، لم تكن هناك حاجة لإنشاء مجلد فرعي باسم "dotnet" لذلك لم يتم تضمينه في البرنامج النصي.
  - تشغيل: الاسم: الأمر Copy Artifacts: | cp dotnet / bin / Release / netcoreapp $ {DOTNET_VERSION} / $ {PROJECT_NAME} - $ {PROJECT_VERSION} .dll $ {WORKSPACE} /packages/HelloWorld.dll

 

  1. استمر في الاحتفاظ بالقطعة الأثرية في دليل القطع الأثرية للتوقيع
  - persist_to_workspace: الجذر:. المسارات: - الحزم / *
 

حدد مرحلة التوقيع

  1. حدد وظيفة التوقيع
 إشارة:

 

  1. خلق متغير البيئة
  • في لقطة الشاشة أعلاه ، تم تحديد أمر sign مباشرة في برنامج Sign script وليس ضمن متغيرات البيئة. بيمكن أن توقع كلتا الطريقتين بشكل صحيح باستخدام CircleCI.
  • تُستخدم متغيرات البيئة لجعل العينات أكثر قابلية للقراءة. في لقطة الشاشة أعلاه لمثال سير العمل ، لم يتم تضمين بعض المتغيرات بشكل اختياري. التوقيع لا يزال من الممكن المضي قدما حتى مع هذه الإغفالات.  
    البيئة: ENVIRONMENT_NAME: PROD COMMAND: sign WORKSPACE: / home / circleci / project

 

  1.     ضع دليل العمل للوظيفة على Circle-CI
 work_directory: / home / circleci / project

 

  1. اسم القطعة الأثرية للتوقيع
  • تعد قيمة "الاسم الاصطناعي" خيارًا لمشاريع متعددة. تمت إضافة معلمة "الاسم الاصطناعي" بحيث يمكن استخدام جزء التوقيع نفسه لجميع أنواع المشاريع. نظرًا لأن المثال الموجود في لقطة الشاشة يستند إلى مشروع واحد ، فليس من الضروري تضمينه.
    المعلمات: اسم الأداة: النوع: السلسلة الافتراضية: "

 

  1. تحديد منفذ عامل الإرساء:

 للحصول على مرجع إضافي ، انظر: https://circleci.com/docs/2.0/executor-types/

       يمكنك تحديد صورة من Dockerhub أو استخدام إحدى صورنا المريحة من مركز مطوري CircleCI.

       تأكد من تحديث علامة صورة Docker أدناه لإصدار openjdk من تطبيقك.

       تتوفر قائمة بالصور المريحة المتوفرة من CircleCI Docker هنا: https://circleci.com/developer/images/image/cimg/openjdk

   عامل ميناء: - الصورة: cimg / openjdk: 17.0.3

 

  1. أضف خطوات إلى الوظيفة

      للحصول على مرجع إضافي ، انظر: https://circleci.com/docs/2.0/configuration-reference/#steps

    خطوات:

 

  1. إنشاء دليل قطعة أثرية لتخزين الملفات الأثرية الموقعة وغير الموقعة
  - تشغيل: الاسم: أمر إنشاء دليل القطع الأثرية: | mkdir -p $ {WORKSPACE} / artifacts mkdir -p $ {WORKSPACE} / packs

 

  1. إرفاق مساحة العمل من أجل الوصول إلى ملف الأداة
   - attach_workspace: في: / home / circleci / project

 

  1. تفعيل Docker لـ CodeSigner على Circle-CI
 - setup_remote_docker: الاسم: إعداد إصدار عامل الإرساء البعيد: 19.03.13 docker_layer_caching: صحيح

 

  1. سحب صورة Codesigner Docker من Github Registry
        - تشغيل: الاسم: أمر سحب Docker Image: | سحب عامل الإرساء ghcr.io/sslcom/codesigner: أحدث سحب عامل الإرساء في جبال الألب: 3.4

 

  1. اكتب الخطوة حيث سيتم توقيع الأداة باستخدام CodeSignTool.
 - run: name: Sign Artifact File الأمر: | docker create -v / codeign / bunder --name codeign-in alpine: 3.4 / bin / true docker create -v / codeign / artifacts - name code-out alpine: 3.4 / bin / true docker cp $ {WORKSPACE} /pack / << parameters.artifact-name >> تسجيل الدخول بالرمز: / codeign / bunder docker run -i --rm --dns 8.8.8.8 - مضيف الشبكة - مجلدات - من تسجيل الدخول - مجلدات - من رمز التوقيع - out -e USERNAME = $ {USERNAME} -e PASSWORD = $ {PASSWORD} -e CREDENTIAL_ID = $ {CREDENTIAL_ID} -e TOTP_SECRET = $ {TOTP_SECRET} -e ENVIRONMENT_NAME = $ {ENVIRONMENT_NAME} ghcr.io/sslcomdates $ {COMMAND} -input_file_path = / codeign /packs / << parameters.artifact-name >> -output_dir_path = / codeign / artifacts docker cp codeign-out: / codeign / artifacts / << parameters.artifact-name >> $ { WORKSPACE} / القطع الأثرية / << parameters.artifact-name >>

 

  1. اكتب الخطوة الخاصة بقطعة أثرية ليتم تحميلها من سير العمل الخاص بك مما يتيح لك مشاركة البيانات بين الوظائف وبيانات المتجر بمجرد اكتمال سير العمل
    - store_artifacts: الاسم: مسار تحميل الملفات الموقعة: / home / circleci / project / artifacts / << parameters.artifact-name >> الوجهة: << parameters.artifact-name >>
 

قم بإنشاء مستودع جديد على سطر الأوامر

انسخ مكونات أمر الدفع من موقع مشروعك على حساب GitHub الخاص بك

قم بتضمين جميع مكونات أوامر الدفع في المحرر الخاص بك

SSL.com's EV توقيع الكود تساعد الشهادات في حماية التعليمات البرمجية الخاصة بك من العبث والتلاعب غير المصرح به بأعلى مستوى من التحقق من الصحة ، وهي متاحة مقابل أقل من $ 249 سنويا. يمكنك أيضا استخدام شهادة توقيع رمز EV الخاص بك على نطاق واسع في السحابة باستخدام eSigner.

اطلب الان

قم بإعداد مشروع على CircleCI باستخدام المستودع المدمج في GitHub

حدد جميع متغيرات البيئة

أثناء تشغيل المشروع ، انقر فوق الزر إعدادات المشروع متبوعًا بمتغيرات البيئة لتحديد المتغيرات

ضع القيم لكل متغير

انقر على أضف متغير البيئة زر لإضافة أسماء وقيم جميع المتغيرات المطلوبة للمشروع.

انتظر حتى يتم بناء المشروع

انقر فوق الاستمرار في مساحة العمل

انتظر لفترة وجيزة حتى يتم تحميل أرشيف مساحة العمل بنجاح.

انقر فوق زر التوقيع

انتظر حتى يتم إعداد Remote Docker

قد يستغرق الأمر أكثر من دقيقة ، حسب حجم الملف

انتظر حتى يتم التوقيع على القطع الأثرية

انقر القطع الأثرية علامة التبويب

إذا قمت بالنقر فوق القطع الأثرية، ستتمكن من رؤية الملف الذي قمت بتوقيعه بنجاح. سيتم إخطارك أيضًا من قبل CircleCI بالتوقيع الناجح للرمز.

يمكنك الرجوع إلى مستودع SSL.com Github الذي يحتوي على أكواد المصدر لصورة عامل الإرساء ويصف كيفية استخدامها: https://github.com/SSLcom/ci-images

عينة خط أنابيب CircleCI

تحقق من عينة خط أنابيب CircleCI التي أنشأناها github.com/SSLcom/codesigner-circleci-sample

أدلة أخرى لتكامل التوقيع عن بعد CI / CD

هل تحتاج إلى حلول مخصصة؟ 

بفضل معرفتنا الخبيرة وموظفي الدعم من فئة الخمس نجوم ، نحن مستعدون وراغبون في العمل معك على حلول مخصصة أو خصومات توقيع كبيرة الحجم على مستوى المؤسسة. املأ النموذج أدناه وسنتواصل معك.

اشترك في النشرة الإخبارية SSL.com

لا تفوت المقالات والتحديثات الجديدة من SSL.com

ابق على اطلاع وآمن

SSL.com هي شركة عالمية رائدة في مجال الأمن السيبراني، PKI والشهادات الرقمية. قم بالتسجيل لتلقي آخر أخبار الصناعة والنصائح وإعلانات المنتجات من SSL.com.

نحن نحب ملاحظاتك

شارك في استبياننا وأخبرنا بأفكارك حول عملية الشراء الأخيرة.