CircleCI ile Bulut Kod İmzalama Entegrasyonu

Bu öğretici, otomatik kod imzalama için eSigner'ın CircleCI ile nasıl entegre edildiğini gösterir.

eSigner, SSL.com'un kod imzalamaya yönelik bulut ortamıdır. İmza anahtarları ve sertifikalar, SSL.com tarafından bulutta güvenli bir şekilde barındırılır ve internete bağlı herhangi bir cihazdan imza için erişilebilir, böylece eSigner, kurumsal kod imzalama için en iyi platformlardan biri haline gelir. eSigner araç takımı CodeSignTool'u içerir. için komut satırı yardımcı programı EV kod imzalama sertifikalar ve CircleCI dahil olmak üzere çeşitli Sürekli Entegrasyon/Sürekli Teslimat (CI/CD) platformlarında otomatik imzalama süreçleri oluşturmak için idealdir. 

SSL.com EV Kod İmzalama sertifikalar, kodunuzu yetkisiz kurcalamaya karşı korumaya yardımcı olur ve en yüksek düzeyde doğrulama ile taviz verir ve en az düzeyde kullanılabilir. Yılda $ 249. Ayrıca şunları da yapabilirsiniz EV Kod İmzalama sertifikanızı geniş ölçekte kullanın eSigner kullanarak bulutta.

ŞİMDİ SİPARİŞ VER

Ortam Değişkenleri

  • KULLANICI ADI: SSL.com hesabı kullanıcı adı. (Gerekli)
  • ŞİFRE: SSL.com hesap şifresi (Gerekli)
  • KİMLİK_KİMLİĞİ: İmza sertifikası için kimlik bilgisi. credential_id atlanırsa ve kullanıcının yalnızca bir eSigner kod imzalama sertifikası varsa, CodeSignTool varsayılan olarak bunu ayarlar. Kullanıcının birden fazla kod imzalama sertifikası varsa bu parametre zorunludur. (Gerekli)
  • TOTP_SECRET: OAuth TOTP Gizli. adresinden detaylı bilgilere ulaşabilirsiniz. https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Gereklidir)
  • ENVIRONMENT_NAME : 'TEST' veya 'PROD' Ortamı. (Gerekli)

Girdiler

  • girdi_dosya_yolu: İmzalanacak kod nesnesinin yolu. (Gerekli)
  • çıktı_dir_yolu: İmzalı kod nesnesinin/nesnelerinin yazılacağı dizin. output_path atlanırsa, -file_path içinde belirtilen dosyanın üzerine imzalı dosya yazılır.

İş akışının bileşenlerini hazırlayın (.NET Kodu DLL İmzalama)

  1. Bir .circleci klasörü oluşturun

Kod imzalama çalışma alanınızda bir .circleci klasörü. Altında, bir oluştur config.yml dosyası.

  1. CI sürümünü ayarlayın
versiyon: 2.1
 
  1.  İşleri iş akışları aracılığıyla çağırın. İş akışları, çalıştırılacak bir dizi işi düzenler. Bu işlem hattı için işler aşağıda yapılandırılmıştır

Bakınız: https://circleci.com/docs/2.0/configuration-reference/#workflows

iş akışları:
 
  1. İş akışının adını yazın.
  nokta ağı:
 
  1. İş akışı içinde çalıştırmak istediğiniz işleri tanımlarsınız.
 işler: - inşa - işaret: şunları gerektirir: - inşa
 

Yapı Aşamasını Tanımlayın

  1. Bir iş akışında daha sonra çağrılacak bir iş tanımlayın.

 (Bakınız: https://circleci.com/docs/2.0/configuration-reference/#jobs)

işler: inşa:

 

  1. Bir ortam değişkeni oluşturun
  • Örnekleri daha okunaklı hale getirmek için ortam değişkenleri kullanılır. Örnek bir imzalama iş akışının yukarıdaki ekran görüntüsünde, PROJECT_NAME, PROJECT_VERSION ve DOTNET_VERSION isteğe bağlı olarak çıkarılmıştır. İmzalama, bu eksikliklerle bile devam edebilir.  
  ortam: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 DOTNET_VERSION: 3.1 WORKSPACE: /home/circleci/project

 

  1.  Bir Docker yürütücüsü tanımlayın: (https://circleci.com/docs/2.0/executor-types/)

    # Dockerhub'dan bir görüntü belirtebilir veya CircleCI'nin Geliştirici Merkezindeki Kolaylık Görüntülerimizden birini kullanabilirsiniz.

 liman işçisi: - resim: mcr.microsoft.com/dotnet/sdk:3.1-bullseye

 

  1. İş için çalışma dizinini yerleştirin
  çalışma_dizini: /home/circleci/project

 

  1. İşe adımlar ekleyin

    Bakınız: https://circleci.com/docs/2.0/configuration-reference/#steps

  adım:

 

  1.  İş akışının erişebilmesi için kaynak kodunu kontrol edin.
    - ödeme

 

  1. İmzalı ve imzasız yapı dosyalarını depolamak için Yapıt Dizini oluşturun
    - çalıştır: isim: Eserler Dizini Oluştur komutu: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/packages

 

  1.  Bir dotnet projesi veya çözümü ve tüm bağımlılıklarını oluşturun.
      - run: name: Build Dotnet Project Command: dotnet build dotnet/${PROJECT_NAME}.csproj -c Release

 

  1. Eseri eserler dizinine kopyalayın
  • Bu yazılı imza örneği iş akışında birden çok proje türü oluşturulmuştur. Bu nedenle alt klasörler oluşturularak farklı proje türlerine ait dosyalar tutulmuştur. Dotnet projeleri için 'dotnet' adında bir alt klasör oluşturuldu. Yukarıdaki demo ekran görüntüsünde, 'dotnet' adında bir alt klasör oluşturmaya gerek yoktu, bu yüzden bu komut dosyasına dahil edilmedi.
  - çalıştır: isim: Eserleri Kopyala komutu: | cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${WORKSPACE}/packages/HelloWorld.dll

 

  1. İmza için yapıtı yapıtlar dizinine devam ettirin
  - persist_to_workspace: kök: . yollar: - paketler/*
 

İmza Aşamasını Tanımlayın

  1. İmzalama işini tanımlayın
 işaret:

 

  1. Bir ortam değişkeni oluşturun
  • Yukarıdaki ekran görüntüsünde, işaret komutu, ortam değişkenleri altında değil, doğrudan işaret komut dosyasında tanımlanmıştır. Bdiğer yöntemler CircleCI ile doğru şekilde imzalayabilir.
  • Örnekleri daha okunaklı hale getirmek için ortam değişkenleri kullanılır. Örnek iş akışının yukarıdaki ekran görüntüsünde bazı değişkenler isteğe bağlı olarak dahil edilmemiştir. İmzalama, bu eksikliklerle bile devam edebilir.  
    ortam: ENVIRONMENT_NAME: PROD COMMAND: imzala WORKSPACE: /home/circleci/project

 

  1.     İş için çalışma dizinini Circle-CI'ye yerleştirin
 çalışma_dizini: /home/circleci/project

 

  1. İmza için yapıt adı
  • 'artifact-name' değeri birden fazla proje için bir seçenektir. 'artifact-name' parametresi, tüm proje türleri için aynı imzalama bölümünün kullanılabilmesi için eklendi. Ekran görüntüsündeki örnek tek bir projeye dayandığı için dahil edilmesine gerek duyulmamıştır.
    parametreler: yapı-adı: tür: dize varsayılanı: ''

 

  1. Bir liman işçisi yürütücüsü tanımlayın:

 Ek referans için, bakınız: https://circleci.com/docs/2.0/executor-types/

       Dockerhub'dan bir görüntü belirtebilir veya CircleCI'nin Geliştirici Merkezindeki Kolaylık Görüntülerimizden birini kullanabilirsiniz.

       Aşağıdaki Docker resim etiketini uygulamanızın openjdk sürümüne güncellediğinizden emin olun.

       Mevcut CircleCI Docker Kolaylık Görüntülerinin bir listesi burada mevcuttur: https://circleci.com/developer/images/image/cimg/openjdk

   liman işçisi: - resim: cimg/openjdk:17.0.3

 

  1. İşe adımlar ekleyin

      Ek referans için, bakınız: https://circleci.com/docs/2.0/configuration-reference/#steps

    adım:

 

  1. İmzalı ve imzasız yapı dosyalarını depolamak için Yapıt Dizini oluşturun
  - çalıştır: isim: Eserler Dizini Oluştur komutu: | mkdir -p ${WORKSPACE}/artifacts mkdir -p ${WORKSPACE}/packages

 

  1. Yapıt dosyasına erişmek için Çalışma Alanına Ekle
   - ataşe_çalışma alanı: /home/circleci/project adresinde

 

  1. Circle-CI üzerinde CodeSigner için Docker'ı etkinleştirin
 - setup_remote_docker: ad: Remote Docker Kurulumu sürümü: 19.03.13 docker_layer_caching: true

 

  1. Github Kayıt Defterinden Codesigner Docker Görüntüsünü Çekin
        - çalıştır: isim: Docker Resim Çekme komutu: | liman işçisi çekme ghcr.io/sslcom/codesigner:en son liman işçisi alpine çekme:3.4

 

  1. Yapıtın CodeSignTool ile imzalanacağı adımı yazın.
 - çalıştır: ad: Artifact Dosyasını İmzala komutu: | docker create -v /codesign/packages --name codesign-in alpine:3.4 /bin/true docker create -v /codesign/artifacts --name codesign-out alpine:3.4 /bin/true docker cp ${WORKSPACE}/packages /<< parameter.artifact-name >> codesign-in:/codesign/packages docker run -i --rm --dns 8.8.8.8 --ağ ana bilgisayarı --codesign-in'den ciltler --codesign'dan ciltler- çıkış -e USERNAME=${USERNAME} -e ŞİFRE=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=${ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:latest ${COMMAND} -input_file_path=/codesign/packages/<< parameter.artifact-name >> -output_dir_path=/codesign/artifacts docker cp codesign-out:/codesign/artifacts/<< parameter.artifact-name >> ${ WORKSPACE}/artifacts/<< parameter.artifact-name >>

 

  1. Bir iş akışı tamamlandıktan sonra işler arasında veri paylaşmanıza ve veri depolamanıza olanak tanıyan iş akışınızdan yüklenecek yapınızın adımını yazın
    - store_artifacts: ad: İmzalı Dosyaları Yükle yol: /home/circleci/project/artifacts/<< parametreler.artifact-adı >> hedef: << parametreler.artifact-adı >>
 

Komut satırında yeni bir depo oluşturun

GitHub hesabınızdaki projenizin konumundan push komut bileşenlerini kopyalayın

Tüm push komut bileşenlerini düzenleyicinize dahil edin

SSL.com EV Kod İmzalama sertifikalar, kodunuzu yetkisiz kurcalamaya karşı korumaya yardımcı olur ve en yüksek düzeyde doğrulama ile taviz verir ve en az düzeyde kullanılabilir. Yılda $ 249. Ayrıca şunları da yapabilirsiniz EV Kod İmzalama sertifikanızı geniş ölçekte kullanın eSigner kullanarak bulutta.

ŞİMDİ SİPARİŞ VER

GitHub'a entegre depoyu kullanarak CircleCI üzerinde bir proje oluşturun

Tüm Ortam Değişkenlerini Tanımlayın

Proje çalışırken, değişkenleri tanımlamak için Proje Ayarları düğmesini ve ardından Ortam Değişkenleri'ni tıklayın.

Her değişken için değerleri yerleştirin

Tıkla Ortam Değişkeni Ekle proje için gerekli tüm değişkenlerin adlarını ve değerlerini eklemek için düğmesine basın.

Projenin inşa edilmesini bekleyin

Çalışma alanına devam ediyor'a tıklayın

Çalışma alanı arşivinin başarıyla yüklenmesini kısaca bekleyin.

İmzala düğmesini tıklayın

Remote Docker'ın kurulmasını bekleyin

Dosyanın boyutuna bağlı olarak bir dakikadan fazla sürebilir

Eserlerin imzalanmasını bekleyin

Tıkla Eserleri çıkıntı

tıklarsanız Eserleri, kodunu başarıyla imzaladığınız dosyayı görebileceksiniz. Ayrıca, başarılı kod imzalama konusunda CircleCI tarafından bilgilendirileceksiniz.

Docker görüntüsünün kaynak kodlarını içeren ve nasıl kullanılacağını açıklayan SSL.com Github deposuna başvurabilirsiniz: https://github.com/SSLcom/ci-images

Örnek CircleCI Boru Hattı

Üzerinde oluşturduğumuz örnek CircleCI işlem hattına göz atın github.com/SSLcom/codesigner-circleci-sample

Diğer CI/CD 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.