Jenkins CI ile Bulut Kod İmzalama Entegrasyonu

Bu, eSigner CodeSignTool kullanılarak Jenkins'te otomatik kod imzalamanın nasıl yapılacağına ilişkin bir kılavuzdur.

CodeSignTool, yüksek hacimli imzalar için uygun olan ve çeşitli CI/CD platformlarıyla sorunsuz bir şekilde bütünleşen bir komut satırı yardımcı programıdır. Kurumsal kod imzalamaya verimli, güvenli ve kullanıcı dostu bir yaklaşım sunan uzaktan imzalama hizmetimiz olan eSigner'ın bir parçasını oluşturur.

SSL.com EV Kod İmzalama Sertifikalar kodunuzu yetkisiz kurcalamaya karşı korumaya yardımcı olun ve en yüksek düzeyde doğrulama ile ödün verin ve şu kadar kısa bir süre için kullanılabilirler: Yılda $ 249.

SSL.COM EV KODU İMZA BELGESİNİZİ SATIN ALIN

Bir Jenkins dosyası oluşturun ve işlem hattını kod düzenleyicinizde tanımlayın

boru hattı { aracı herhangi bir seçenek { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }

Jenkins'i yapılandırarak kod düzenleyicinizde .NET aracını ayarlayın

Tıkla Jenkins'i yönetin Jenkins panonuzdaki sekme.

Sayfayı aşağı kaydırın ve Global Araç Yapılandırması'na tıklayın.

Aşağı kaydırın ve tıklayın .NET SDK Kurulumları.

.NET SDK değerini kopyalayın ve kod düzenleyicinize yapıştırın.

araçlar { dotnetsdk "DOTNET_CORE_3.1.24" }

plugins.jenkins.io adresine gidin ve .NET SDK eklentisini yükleyin

Altında Jenkins'i yönetin Kontrol Panelinizde, kontrol edin Eklentileri Yönetin .NET SDK eklentisinin yüklenip yüklenmediğini onaylamak için.

Eklentinin yüklendiğini onayladıktan sonra .NET SDK KURULUMLARI'na dönün ve .NET SDK eklentisinin doğru sürümünün ve sürüm ayrıntılarının ayarlandığından emin olun. Tıklamak için devam edin İndirim düğmesine basın.

Kod düzenleyicinizde Ortam Değişkenlerini ayarlayın

ortam { USERNAME = kimlik bilgileri('es-kullanıcıadı') // SSL.com hesabı kullanıcı adı. PASSWORD = kimlik bilgileri('es-password') // SSL.com hesap şifresi. CREDENTIAL_ID = credentials('es-credential-id') // İmza sertifikası için kimlik bilgisi. TOTP_SECRET = kimlik bilgileri('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com Ortam Adı. Demo Hesap için 'TEST' olabilir, aksi takdirde 'PROD' olacaktır }

Jenkins kontrol panelinizde her bir değişkenin değerlerini altında bulabilirsiniz. Güvenlik> Yönet Kimlik.

 

Yapıtlar dizini oluşturma, liman işçisi görüntüsünü çekme, .NET oluşturma ve yapıtı imzalayan kod için aşamaları ayarlayın

 

        1) Mağaza imzalı ve imzasız yapı dosyaları için Yapıt Dizini oluşturun.
 Stage('Create yapıt dizini') { adımlar { sh 'mkdir ${WORKSPACE}/artifacts' sh 'mkdir ${WORKSPACE}/packages' } }
        2) Github Kayıt Defterinden Codesigner Docker Görüntüsünü Çekin.
stage('Docker Pull Image') { adımlar { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } }
        3) Bir dotnet projesi veya çözümü ve tüm bağımlılıklarını oluşturun. Dll veya exe dosyası oluşturulduktan sonra, imzalamak için 'packages' klasörüne kopyalayın.
Stage('Build Dotnet') { adımlar { 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) Oluşturulan DLL (artifact) dosyalarının CodeSignTool ile imzalanacağı adımdır.
stage('Dotnet Core DLL Yapısını İmzala ve Kaydet') { adımlar { sh 'docker run -i --rm --dns 8.8.8.8 --network host --volume ${WORKSPACE}/packages:/codesign/examples -- birim ${WORKSPACE}/artifacts:/codesign/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:latest işareti -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } gönderi { her zaman {archiveArtifacts yapıtları: "eserler/HelloWorld.dll", onlyIfSuccessful: true } } } } }

SSL.com EV Kod İmzalama Sertifikalar kodunuzu yetkisiz kurcalamaya karşı korumaya yardımcı olun ve en yüksek düzeyde doğrulama ile ödün verin ve şu kadar kısa bir süre için kullanılabilirler: Yılda $ 249.

SSL.COM EV KODU İMZA BELGESİNİZİ SATIN ALIN

Github deposu oluşturun

Push komutu bileşenlerinin her birini Github'a kopyalayın.

Kodu itmek için komutları kod düzenleyicinizdeki yeni bir terminale yazın.

Kodu bastıktan sonra Github hesabınıza gidin ve projenizin URL bağlantısını kopyalayın.

Jenkins hesabınıza ilerleyin ve Bir iş oluşturun bağlantı.

Klinik Çok Şubeli Boru Hattı, projenizin adını belirleyin ve OK düğmesine basın.

Altında Şube Kaynaklarıseçin Git ve Github projenizin URL bağlantısını yapıştırın.

Aşağı ilerleyin Çok Dallı İşlem Hattı Tetikleyicilerini Tara. için kutuyu işaretleyin Aksi takdirde periyodik olarak çalıştırın. Seçebilirsin 2 dakikadır..

Tıkla İndirim düğmesine basın.

Jenkins hesabınıza geri dönün, projenize tıklayın ve boru hattının başlayıp başlamadığını onaylayın.

Jenkins projenize tıklayın ve seçin Çok Dallı İşlem Hattını Şimdi Tara Gösterge Tablosunda.

Tıkla Konsol Çıkışı

Aşağı kaydırın ve kod imzalamanın başarılı olup olmadığını kontrol edin

Tüm Komut Dosyası

Not: İmzalama işleminin sorunsuz çalışması için komut dosyasındaki yazım hatalarını veya hatalı satır sonlarını düzelttiğinizden emin olun.

Boru hattını tanımlayın

boru hattı { aracı herhangi bir seçenek { buildDiscarder(logRotator(numToKeepStr: "5")) disableConcurrentBuilds() }

Derleme Araçlarını Yükleyin

araçlar { dotnetsdk "DOTNET_CORE_3.1.24" //https://plugins.jenkins.io/dotnet-sdk }

Bir ortam değişkeni oluşturun

ortam { USERNAME = kimlik bilgileri('es-kullanıcıadı') // SSL.com hesabı kullanıcı adı. PASSWORD = kimlik bilgileri('es-password') // SSL.com hesap şifresi. CREDENTIAL_ID = credentials('es-credential-id') // İmza sertifikası için kimlik bilgisi. TOTP_SECRET = kimlik bilgileri('es-totp-secret') // OAuth TOTP Secret (https://www.ssl.com/how-to/automate-esigner-ev-code-signing) ENVIRONMENT_NAME = 'PROD' // SSL .com Ortam Adı. Demo Hesap için 'TEST' olabilir, aksi takdirde 'PROD' olacaktır }

Oluşturma ve İmzalama Aşamaları için Komut Dosyası

1. Aşamalar { // 2) İmzalı ve imzasız yapay dosyaları depolamak için Yapı Dizini oluştur / 3) Github Kayıt Defteri aşamasından Codesigner Docker Görüntüsünü Çekin('Docker Pull Image') { adımlar { sh 'docker pull ghcr.io/sslcom/codesigner:latest' } } // 3.1) Bir dotnet projesi veya çözümü ve tümünü oluşturun bağımlılıkları. // Dll veya exe dosyası oluşturulduktan sonra, imzalama aşaması için 'packages' klasörüne kopyalayın('Build Dotnet') {steps { sh 'dotnet build dotnet/HelloWorld.csproj -c Release' sh 'cp dotnet/bin/ Release/netcoreapp0.0.1/HelloWorld-4.dll ${WORKSPACE}/packages/HelloWorld.dll' } } // 8.8.8.8) Bu, oluşturulan DLL (yapı) dosyalarının CodeSignTool ile imzalanacağı adımdır. stage('Dotnet Core DLL Yapısını İmzala ve Kaydet') { adımlar { sh 'docker run -i --rm --dns XNUMX --network host --volume ${WORKSPACE}/packages:/codesign/examples -- birim ${WORKSPACE}/artifacts:/codesign/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:latest işareti -input_file_path=/codesign/examples/HelloWorld.dll -output_dir_path=/codesign/output' } gönderi { her zaman {archiveArtifacts yapıtları: "eserler/HelloWorld.dll", onlyIfSuccessful: true } } } } }
Referans edebilirsiniz SSL.com Docker görüntüsünün kaynak kodlarını içeren ve nasıl kullanılacağını açıklayan Github deposu: https://github.com/SSLcom/ci-images 

Örnek Jenkins Ardışık Düzen

Oluşturduğumuz örnek Jenkins işlem hattına göz atın github.com/SSLcom/codesigner-jenkins-sample

Diğer Uzaktan İmzalama Entegrasyon Kılavuzları

Özel Çözümlere mi ihtiyacınız var? 

Uzman bilgi birikimimiz ve beş yıldızlı destek ekibimizle, özel çözümler veya kurumsal düzeyde yüksek hacimli imza indirimleri konusunda sizinle birlikte çalışmaya hazır ve istekliyiz. Aşağıdaki formu doldurun, sizinle iletişime geçelim.

SSL.com'un Bültenine Abone Olun

SSL.com'dan yeni makaleleri ve güncellemeleri kaçırmayın

Haberdar Olun ve Güvende Kalın

SSL.com Siber güvenlik alanında küresel bir lider olan PKI ve dijital sertifikalar. En son sektör haberlerini, ipuçlarını ve ürün duyurularını almak için kaydolun SSL.com.

Geri bildiriminizi almak isteriz

Anketimize katılın ve son satın alma işleminizle ilgili düşüncelerinizi bize bildirin.