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

هذا دليل حول كيفية القيام بالتوقيع الآلي للرمز على Jenkins باستخدام eSigner CodeSignTool.

CodeSignTool هي أداة مساعدة لسطر الأوامر مناسبة للتوقيعات ذات الحجم الكبير وتتكامل بسلاسة مع العديد من منصات CI / CD. إنه يشكل جزءًا من eSigner: خدمة التوقيع عن بُعد الخاصة بنا التي توفر طريقة فعالة وآمنة وسهلة الاستخدام لتوقيع رمز المؤسسة.

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

اشتر شهادة توقيع رمز SSL.COM EV الخاص بك

قم بإنشاء ملف Jenkins وحدد خط الأنابيب في محرر التعليمات البرمجية الخاص بك

خط الأنابيب {عامل أي خيارات {buildDiscarder (logRotator (numToKeepStr: "5")) disableConcurrentBuilds ()}

قم بتعيين أداة .NET في محرر التعليمات البرمجية الخاص بك عن طريق تكوين Jenkins

انقر على إدارة جنكينز علامة تبويب على لوحة معلومات Jenkins الخاصة بك.

قم بالتمرير لأسفل الصفحة وانقر فوق تكوين الأداة العامة.

انتقل لأسفل وانقر تثبيتات .NET SDK.

انسخ قيمة .NET SDK والصقها في محرر التعليمات البرمجية.

أدوات {dotnetsdk "DOTNET_CORE_3.1.24"}

انتقل إلى plugins.jenkins.io وقم بتثبيت المكون الإضافي .NET SDK

تحت إدارة جنكينز في لوحة التحكم الخاصة بك ، تحقق إدارة المكونات الإضافية لتأكيد ما إذا كان قد تم تثبيت المكون الإضافي .NET SDK.

بعد التأكد من تثبيت المكون الإضافي ، ارجع إلى .NET SDK INSTALLATIONS وتأكد من تعيين الإصدار الصحيح وتفاصيل الإصدار للمكون الإضافي .NET SDK. تابع للنقر فوق حفظ .

قم بتعيين متغيرات البيئة في محرر التعليمات البرمجية الخاص بك

البيئة {USERNAME = بيانات الاعتماد ('es-username') // اسم مستخدم حساب SSL.com. PASSWORD = بيانات الاعتماد ('es-password') // كلمة مرور حساب SSL.com. CREDENTIAL_ID = بيانات الاعتماد ('es-crendential-id') // معرف بيانات الاعتماد لتوقيع الشهادة. TOTP_SECRET = بيانات الاعتماد ('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com اسم البيئة. بالنسبة للحساب التجريبي ، يمكن أن يكون "TEST" وإلا فسيكون "PROD"}

ستجد قيم كل متغير في لوحة معلومات Jenkins أسفل الأمن> إدارة وثائق التفويض.

 

حدد مراحل إنشاء دليل القطع الأثرية ، وسحب صورة عامل الإرساء ، وبناء .NET ، وكود توقيع الأداة

 

        1) إنشاء دليل قطعة أثرية لتخزين الملفات الأثرية الموقعة وغير الموقعة.
 stage ('إنشاء دليل المصنوعات') {الخطوات {sh 'mkdir $ {WORKSPACE} / artifacts' sh 'mkdir $ {WORKSPACE} /packs'}}
        2) سحب صورة Codesigner Docker من Github Registry.
المرحلة ('Docker Pull Image') {الخطوات {sh 'docker pull ghcr.io/sslcom/codesigner:latest'}}
        3) بناء مشروع أو حل dotnet وجميع تبعياتها. بعد إنشاء ملف dll أو exe ، انسخ إلى مجلد "الحزم" للتوقيع.
stage ('Build Dotnet') {الخطوات {sh 'dotnet build dotnet / HelloWorld.csproj -c Release' sh 'cp dotnet / bin / Release / netcoreapp3.1 / HelloWorld-0.0.1.dll $ {WORKSPACE} / packs / HelloWorld.dll '}}
        4) هذه هي الخطوة التي سيتم فيها توقيع ملفات DLL (قطعة أثرية) التي تم إنشاؤها باستخدام CodeSignTool.
stage ('Sign and Save Dotnet Core DLL Artifact') {الخطوات {sh 'docker run -i --rm --dns 8.8.8.8 - مضيف الشبكة - المجلد $ {WORKSPACE} / الحزم: / codeign /amples - الحجم $ {WORKSPACE} / artifacts: / codeign / output -e USERNAME = $ {USERNAME} -e PASSWORD = $ {PASSWORD} -e CREDENTIAL_ID = $ {CREDENTIAL_ID} -e TOTP_SECRET = $ {TOTP_SECRET} -e ENVIRONMENT_NAME = $ { ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner: أحدث علامة -input_file_path = / codeign /amples / HelloWorld.dll -output_dir_path = / codeign / output '} post {دائمًا {archiveArtifacts artifacts: "artifacts / HelloWorld.dll" ، onlyIfSuccessful: true }}}}}

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

اشتر شهادة توقيع رمز SSL.COM EV الخاص بك

قم بإنشاء Github repo

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

اكتب الأوامر في محطة طرفية جديدة في محرر الكود لدفع الكود.

بعد دفع الكود ، انتقل إلى حساب Github الخاص بك وانسخ رابط URL الخاص بمشروعك.

انتقل إلى حساب Jenkins الخاص بك وانقر فوق قم بإنشاء وظيفة الرابط.

اختار خط أنابيب متعدد الفروع, عيّن اسمًا لمشروعك ، وانقر فوق OK .

تحت مصادر الفروع، حدد بوابة والصق رابط URL لمشروع Github الخاص بك.

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

انقر على حفظ .

ارجع إلى حساب Jenkins الخاص بك ، وانقر فوق مشروعك ، وتأكد مما إذا كان خط الأنابيب قد بدأ

انقر فوق مشروع Jenkins الخاص بك وحدد امسح خط الأنابيب متعدد الفروع الآن على لوحة القيادة.

انقر إخراج وحدة التحكم

قم بالتمرير لأسفل وتحقق من نجاح توقيع الرمز

البرنامج النصي بأكمله

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

تحديد خط الأنابيب

خط الأنابيب {عامل أي خيارات {buildDiscarder (logRotator (numToKeepStr: "5")) disableConcurrentBuilds ()}

قم بتثبيت أدوات البناء

أدوات {dotnetsdk "DOTNET_CORE_3.1.24" //https://plugins.jenkins.io/dotnet-sdk}

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

البيئة {USERNAME = بيانات الاعتماد ('es-username') // اسم مستخدم حساب SSL.com. PASSWORD = بيانات الاعتماد ('es-password') // كلمة مرور حساب SSL.com. CREDENTIAL_ID = بيانات الاعتماد ('es-crendential-id') // معرف بيانات الاعتماد لتوقيع الشهادة. TOTP_SECRET = بيانات الاعتماد ('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com اسم البيئة. بالنسبة للحساب التجريبي ، يمكن أن يكون "TEST" وإلا فسيكون "PROD"}

البرنامج النصي لمراحل البناء والتوقيع

المراحل {// 1) إنشاء دليل الأداة لمرحلة ملفات العناصر الأثرية الموقعة وغير الموقعة بالمخزن ('إنشاء دليل العناصر الأثرية') {الخطوات {sh 'mkdir $ {WORKSPACE} / artifacts' sh 'mkdir $ {WORKSPACE} / packs'}} / / 2) سحب صورة Codesigner Docker من Github Registry stage ('Docker Pull Image') {الخطوات {sh 'docker pull ghcr.io/sslcom/codesigner:latest'}} // 3) بناء مشروع أو حل dotnet وجميع تبعياتها. // بعد إنشاء ملف dll أو exe ، انسخ إلى مجلد "الحزم" لمرحلة التوقيع ("Build Dotnet") {الخطوات {sh 'dotnet build dotnet / HelloWorld.csproj -c Release' sh 'cp dotnet / bin / Release / netcoreapp3.1 / HelloWorld-0.0.1.dll $ {WORKSPACE} /packages/HelloWorld.dll '}} // 4) هذه هي الخطوة حيث سيتم توقيع ملفات DLL (الأداة) التي تم إنشاؤها باستخدام CodeSignTool. stage ('Sign and Save Dotnet Core DLL Artifact') {الخطوات {sh 'docker run -i --rm --dns 8.8.8.8 - مضيف الشبكة - المجلد $ {WORKSPACE} / الحزم: / codeign /amples - الحجم $ {WORKSPACE} / artifacts: / codeign / output -e USERNAME = $ {USERNAME} -e PASSWORD = $ {PASSWORD} -e CREDENTIAL_ID = $ {CREDENTIAL_ID} -e TOTP_SECRET = $ {TOTP_SECRET} -e ENVIRONMENT_NAME = $ { ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner: أحدث علامة -input_file_path = / codeign /amples / HelloWorld.dll -output_dir_path = / codeign / output '} post {دائمًا {archiveArtifacts artifacts: "artifacts / HelloWorld.dll" ، onlyIfSuccessful: true }}}}}
يمكنك الرجوع إلى SSL.com مستودع Github الذي يحتوي على أكواد المصدر لصورة عامل الإرساء ويصف كيفية استخدامها: https://github.com/SSLcom/ci-images 

عينة جينكينز بايبلاين

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

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

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

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

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

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

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

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

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

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