تكامل توقيع رمز السحابة مع إجراءات GitHub

توضح مقالة الدليل هذه كيفية تكامل eSigner مع إجراءات GitHub للتوقيع الآلي للرمز في إعداد التكامل المستمر / التسليم المستمر (CI / CD).

إن eSigner هو نظامنا الأساسي للتوقيع المستند إلى السحابة والموثوق به من قبل مطوري البرامج في جميع أنحاء العالم لإجراء توقيع رمز المؤسسة دون الحاجة إلى رموز USB أو أجهزة متخصصة أخرى.  أحد مكونات eSigner هو CodeSignTool: أداة سطر أوامر تعتمد على الخصوصية وفعالة للغاية للمطورين الذين يرغبون في أتمتة توقيع التعليمات البرمجية.  توضح الأقسام التالية كيف يمكنك توقيع كود Java (Maven) على إجراءات GitHub باستخدام eSigner CodeSignTool.

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

اطلب الان

الأستعمال

- اسم: قم بتوقيع قطعة أثرية باستخدام CodeSignTool

  الاستعمالات: sslcom / Actions-codeigner @ تطوير

  مع:

  •      أوامر CodeSignTool:

     - get_credential_ids: إخراج قائمة معرفات اعتماد eSigner المرتبطة بالمستخدم.

     - credential_info: مفتاح الإخراج ومعلومات الشهادة المتعلقة بمعرف بيانات الاعتماد.

     - sign: التوقيع وكائن رمز الطابع الزمني.

     - batch_sign: قم بالتوقيع والطابع الزمني على كائنات رمز متعددة باستخدام OTP واحد.

     - hash: قم بحساب التجزئة مسبقًا لاستخدامها لاحقًا مع أمر batch_hash_sign.

     - batch_sign_hash: علامة التجزئة المحسوبة مسبقًا بأمر التجزئة.

        أمر: إشارة

 

  • اسم مستخدم حساب SSL.com.

         username: ${{secrets.ES_USERNAME}}

  •  كلمة مرور حساب SSL.com.

         password: ${{secrets.ES_PASSWORD}}

  • معرف الاعتماد لتوقيع الشهادة.

         credential_id: ${{secrets.CREDENTIAL_ID}}

         totp_secret: ${{secrets.ES_TOTP_SECRET}}

  • مسار كائن التعليمات البرمجية المراد توقيعه.

          file_path: ${GITHUB_WORKSPACE}/test/src/build/HelloWorld.jar

  • الدليل حيث سيتم كتابة كائن (كائنات) التعليمات البرمجية الموقعة.

          output_path: ${GITHUB_WORKSPACE}/artifacts

 

المدخلات

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

Java Code (Maven) JAR مثال لتوقيع سير العمل

تحضير مكونات سير العمل

  1. قم بإنشاء مجلد Github على المحرر الخاص بك. قم بتضمين مهام سير العمل مع المجلد وأنشئ ملف yml ضمن المجلد.
    1. قم بتسمية مشروعك ونوع سير العمل المتضمن
    الاسم: Maven Build and Sign
     
    1. قم بتشغيل سير العمل هذا بضغطة واحدة
    تشغيل: ادفع
     
    1. خلق متغير البيئة
    • تُستخدم متغيرات البيئة لجعل العينات أكثر قابلية للقراءة. في لقطة الشاشة أعلاه لنموذج سير العمل ، تم حذف PROJECT_NAME و PROJECT_VERSION و MAVEN_VERSION اختياريًا. التوقيع لا يزال من الممكن المضي قدما حتى مع هذه الإغفالات.
    البيئة: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
     
    1. حدد الوظائف في المحرر الخاص بك
    الوظائف: بناء وتوقيع جرة:
     
    1. قم بتشغيل الوظيفة على Ubuntu Runner
        يعمل على: ubuntu-latest
     
    1. قم بإنشاء اسم. عند تشغيل سير العمل ، يكون هذا هو الاسم الذي تم تسجيله.
      الاسم: CodeSigner على Java مع Maven
     

حدد خطوات التحقق من الكود المصدري ، وإعداد بيئة Java و Maven ، وإنشاء دليل Artifact.

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

   الخطوات: - الاستخدامات: الإجراءات / الخروج @ v2
 

  2) قم بإعداد بيئة Java و Maven لاستخدام سير العمل.

    - الاسم: تثبيت Maven و Java يستخدم: s4u/setup-maven-action@v1.3.1 مع: java-version: '$ {env.JAVA_VERSION}}' maven-version: '$ {env.MAVEN_VERSION}}

 

      3) إنشاء دليل قطعة أثرية لتخزين الملفات الأثرية الموقعة وغير الموقعة

 - الاسم: إنشاء غلاف الدليل: تشغيل bash: | mkdir $ {GITHUB_WORKSPACE} / artifacts mkdir $ {GITHUB_WORKSPACE} / الحزم

 

      4) بناء مشروع أو حل مخضرم وجميع تبعياته.

      بعد إنشاء ملف jar ، انسخ إلى مجلد "الحزم" للتوقيع

  • في سير عمل مثال التوقيع المكتوب هذا ، تم إنشاء أنواع متعددة من المشاريع. هذا هو سبب الاحتفاظ بملفات أنواع المشاريع المختلفة عن طريق إنشاء مجلدات فرعية. تم إنشاء مجلد فرعي باسم "java" لمشاريع Java. في لقطة الشاشة التجريبية أعلاه ، لم تكن هناك حاجة لإنشاء مجلد فرعي باسم "java" لذلك لم يتم تضمينه في البرنامج النصي.
 - الاسم: Build Java Project shell: bash run: | mvn clean install -f java / pom.xml cp java / target / $ {env.PROJECT_NAME}} - $ {env.PROJECT_VERSION}}. jar $ {GITHUB_WORKSPACE} /pack / $ {env.PROJECT_NAME}}. إناء
 

حدد الخطوات الخاصة بوظائف التوقيع والتحميل

  1. مهمة التوقيع هي الخطوة التي سيتم فيها توقيع ملفات JAR (قطعة أثرية) التي تم إنشاؤها باستخدام CodeSignTool.
 - الاسم: استخدامات Sign Artifact: sslcom / Actions-codeigner @ تطوير مع:

           كائن رمز التوقيع والطابع الزمني.

الأمر: تسجيل

           اسم مستخدم حساب SSL.com.

اسم المستخدم: $ {{secrets.ES_USERNAME}}

           كلمة مرور حساب SSL.com.

كلمة المرور: $ {{secrets.ES_PASSWORD}}

           معرف الاعتماد لتوقيع الشهادة.

بيانات الاعتماد: $ {{secrets.CREDENTIAL_ID}}

           سر OAuth TOTP (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)

totp_secret: $ {{secrets.ES_TOTP_SECRET}}

           مسار كائن التعليمات البرمجية المراد توقيعه. (ملفات DLL ، JAR ، EXE ، MSI vb ...)

  file_path: $ {GITHUB_WORKSPACE} /packs / $ {env.PROJECT_NAME}}. jar

           الدليل حيث سيتم كتابة كائن (كائنات) التعليمات البرمجية الموقعة.

output_path: $ {GITHUB_WORKSPACE} / قطعة أثرية

 

  1. وظيفة التحميل هي الخطوة التي سيتم فيها تحميل العناصر الأثرية من سير العمل الخاص بك ، مما يتيح لك مشاركة البيانات بين الوظائف وبيانات المتجر بمجرد اكتمال سير العمل
 - الاسم: تحميل الملفات الموقعة يستخدم: Actions / upload-artifact @ v2 with: name: $ {{env.PROJECT_NAME}}. jar path: ./artifacts/${{env.PROJECT_NAME}}.jar
 

احصل على أداة رفع قطعة أثرية للبناء من Github Marketplace

راجع نص الترميز الخاص بك

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

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

اطلب الان

حدد متغيرات البيئة الخاصة بك

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

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

انتقل إلى موقع مشروعك على Github وانسخ كل مكون من أمر الدفع.

ادفع المشروع

قم بتضمين كل سطر أوامر دفع في محرر التعليمات البرمجية الخاص بك. عند الانتهاء ، سيتم دفع الرمز تلقائيًا على Github.

انتظر حتى يتم توقيع الأداة باستخدام eSigner CodeSignTool

قم بتحميل الملف الموقع

اضغط على الملف الموقع لتحميله.

ملاحظة: تأكد من تصحيح الأخطاء المطبعية أو فواصل الأسطر الخاطئة في البرنامج النصي حتى تتم عملية التوقيع بسلاسة.

عينة خط أنابيب إجراءات جيثب


تحقق من نموذج خط أنابيب إجراءات Github الذي أنشأناه github.com/SSLcom/codesigner-github-sample  

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

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

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

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

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

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

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

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

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