GitHub Eylemleri ile Bulut Kod İmzalama Entegrasyonu

Bu kılavuz makale, Sürekli Entegrasyon/Sürekli Teslimat (CI/CD) kurulumunda otomatik kod imzalama için eSigner'ın GitHub Eylemleri ile nasıl entegre edildiğini gösterir.

eSigner, tüm dünyadaki yazılım geliştiricilerin USB belirteçlerine veya diğer özel donanımlara ihtiyaç duymadan kurumsal kod imzalaması için güvendiği bulut tabanlı imzalama platformumuzdur.  eSigner'ın bileşenlerinden biri CodeSignTool'dur: kod imzalamayı otomatikleştirmek isteyen geliştiriciler için oldukça etkili, gizlilik odaklı bir komut satırı yardımcı programı.  Aşağıdaki bölümler, eSigner CodeSignTool kullanarak GitHub Actions'da bir Java kodunu (Maven) nasıl imzalayabileceğinizi gösterir.

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

kullanım

- isim: CodeSignTool ile Yapıyı İmzalayın

  kullanır: sslcom/actions-codesigner@develop

  ile:

  •      CodeSignTool Komutları:

     - get_credential_ids: Bir kullanıcıyla ilişkili eSigner kimlik bilgileri listesinin çıktısını alın.

     - credential_info: Bir kimlik bilgisi kimliğiyle ilgili çıktı anahtarı ve sertifika bilgileri.

     - sign: İşaret ve zaman damgası kod nesnesi.

     - batch_sign: Birden çok kod nesnesini tek bir OTP ile imzalayın ve zaman damgası ekleyin.

     - hash: Batch_hash_sign komutuyla daha sonra kullanmak üzere hash(ler)i önceden hesaplayın.

     - batch_sign_hash: Hash komutu ile önceden hesaplanmış hash(ler)i imzalayın.

        komut: işaret

 

  • SSL.com hesabı kullanıcı adı.

         username: ${{secrets.ES_USERNAME}}

  •  SSL.com hesap şifresi.

         password: ${{secrets.ES_PASSWORD}}

  • Sertifika imzalamak için kimlik bilgisi kimliği.

         credential_id: ${{secrets.CREDENTIAL_ID}}

         totp_secret: ${{secrets.ES_TOTP_SECRET}}

  • İmzalanacak kod nesnesinin yolu.

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

  • İmzalı kod nesnesinin/nesnelerinin yazılacağı dizin.

          output_path: ${GITHUB_WORKSPACE}/artifacts

 

Girdiler

  • kullanıcı adı: SSL.com hesabı kullanıcı adı. (Gerekli)
  • şifre: SSL.com hesap şifresi (Gerekli)
  • kimlik bilgisi_kimliği: İ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)
  • dosya yolu: İmzalanacak kod nesnesinin yolu. (Gerekli)
  • çıkış 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.

Java Kodu (Maven) JAR İmzalama Örnek İş Akışı

İş akışının bileşenlerini hazırlayın

  1. Editörünüzde bir Github klasörü oluşturun. Klasöre iş akışlarını dahil edin ve klasörün altında bir yml dosyası oluşturun.
    1. Projenizi ve ilgili iş akışının türünü adlandırın
    İsim: Maven İnşa Et ve İmzala
     
    1. Bu iş akışını bir itme ile tetikleyin
    açık: itin
     
    1. Bir ortam değişkeni oluşturun
    • Ö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 PROJECT_NAME, PROJECT_VERSION ve MAVEN_VERSION isteğe bağlı olarak çıkarılmıştır. İmzalama, bu eksikliklerle bile devam edebilir.
    env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
     
    1. Editörünüzdeki işleri tanımlayın
    işler: yap ve imzala kavanoz:
     
    1. Ubuntu Runner'da işi çalıştır
        çalışır durumda: ubuntu-en son
     
    1. Bir ad oluşturun. İş akışı çalıştığında, günlüğe kaydedilen ad budur.
      isim: Maven ile Java üzerinde CodeSigner
     

Kaynak kodunu kontrol etme, Java ve Maven ortamını ayarlama ve Artifact Dizini oluşturma adımlarını ana hatlarıyla belirtin.

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

   adımlar: - kullanır: eylemler/checkout@v2
 

  2) İş akışının kullanması için Java ve Maven ortamını ayarlayın.

    - ad: Maven'i yükleyin ve Java şunları kullanır: s4u/setup-maven-action@v1.3.1 ile: Java sürümü: '${{env.JAVA_VERSION}}' maven sürümü: '${{env.MAVEN_VERSION}}'

 

      3) İmzalı ve imzasız yapı dosyalarını depolamak için Yapıt Dizini oluşturun

 - ad: Dizin kabuğu oluşturun: bash çalıştırma: | mkdir ${GITHUB_WORKSPACE}/artifacts mkdir ${GITHUB_WORKSPACE}/packages

 

      4) Bir maven projesi veya çözümü ve tüm bağımlılıklarını oluşturun.

      Jar dosyası oluşturulduktan sonra, imzalamak için 'packages' klasörüne 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. Java projeleri için 'java' adında bir alt klasör oluşturuldu. Yukarıdaki demo ekran görüntüsünde, 'java' adında bir alt klasör oluşturmaya gerek yoktu, bu yüzden bu komut dosyasına dahil edilmedi.
 - ad: Java Projesi kabuğunu oluşturun: bash çalıştırma: | mvn temiz kurulum -f Java/pom.xml cp Java/target/${{env.PROJECT_NAME}}-${{env.PROJECT_VERSION}}.jar ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}. kavanoz
 

İmzala ve Karşıya Yükle işlerinin adımlarını özetleyin

  1. Sign işi, oluşturulan JAR (artifact) dosyalarının CodeSignTool ile imzalanacağı adımdır.
 - ad: Sign Artifact şunu kullanır: sslcom/actions-codesigner@develop:

           İşaret ve zaman damgası kodu nesnesi.

komut: işaret

           SSL.com hesabı kullanıcı adı.

kullanıcı adı: ${{secrets.ES_USERNAME}}

           SSL.com hesap şifresi.

şifre: ${{secrets.ES_PASSWORD}}

           Sertifika imzalamak için kimlik bilgisi kimliği.

kimlik bilgisi_kimliği: ${{secrets.CREDENTIAL_ID}}

           OAuth TOTP Sırrı (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)

totp_secret: ${{secrets.ES_TOTP_SECRET}}

           İmzalanacak kod nesnesinin yolu. (DLL, JAR, EXE, MSI dosyaları vb… )

  dosya_yolu: ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}.jar

           İmzalı kod nesnesinin/nesnelerinin yazılacağı dizin.

çıktı_yolu: ${GITHUB_WORKSPACE}/artifacts

 

  1. Yükleme işi, bir iş akışı tamamlandığında işler arasında veri paylaşmanıza ve veri depolamanıza olanak tanıyan, iş akışınızdaki yapıların yükleneceği adımdır.
 - ad: İmzalı Dosyaları Yükle şunları kullanır: eylemler/upload-artifact@v2 ile: ad: ${{env.PROJECT_NAME}}.jar yolu: ./artifacts/${{env.PROJECT_NAME}}.jar
 

Github Marketplace'ten bir yapı yapıtı yükleyicisi edinin

Kodlama komut dosyanızı gözden geçirin

Buld, sign ve upload işleri için genel olarak kodlama betiği aşağıdaki resimdeki gibi görünmelidir. İmzalama işleminin sorunsuz çalışması için komut dosyasındaki yanlış yazım veya hatalı satır sonları gibi hataları düzelttiğinizden emin olun.

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şkenlerinizi Tanımlayın

Github hesabınızda projenizin konumuna gidin. Tıkla İşlemler sekmesi. Tıkla Yeni depo sırrı kodunuzu imzalamak için gereken her ortam değişkeninin değerlerini yerleştirmek için düğme.

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

Projenizin Github'daki konumuna ilerleyin ve push komutunun her bir bileşenini kopyalayın.

Projeyi itin

Her bir push komut satırını kod düzenleyicinize ekleyin. Tamamlandığında, kod otomatik olarak Github'a aktarılacaktır.

Yapıtın eSigner CodeSignTool ile imzalanmasını bekleyin

İmzalı dosyayı yükleyin

Yüklemek için imzalı dosyaya tıklayın.

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.

Örnek Github Eylemleri Ardışık Düzeni


Oluşturduğumuz örnek Github Actions işlem hattına göz atın github.com/SSLcom/codesigner-github-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.