Travis CI ile Bulut Kod İmzalama Entegrasyonu

Bu makale, eSigner CodeSignTool'u ardışık düzeninize entegre ederek Travis CI'de otomatik kod imzalamayı nasıl gerçekleştirebileceğinizi gösterir. 

eSigner, USB belirteçleri ve Ağa Bağlı HSMS ile aynı düzeyde güvenlik sağlayan, ancak daha verimli ve sezgisel bir şekilde sağlayan uzaktan kod imzalama platformumuzdur.  eSigner araç setinin bir parçası CodeSignTool'dur: Travis dahil çeşitli CI/CD ortamlarında kurumsal kod imzalama gerçekleştirmek için ideal olan güvenli bir komut satırı yardımcı programı.
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.

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

Proje oluştur

Proje kapsamında Travis için bir dosya oluşturun

İş akışının bileşenlerini tanımlayın

  1. İşi çalıştırmak için CPU Mimarisini yerleştirin

kemer: amd64

  1. Testleri çalıştırmak için varsayılan dil

dil: java

  1. İşin çalıştırılacağı işletim sistemini belirtin

işletim sistemi: linux

  1. Kullanılacak Ubuntu dağıtımını yazın

bkz: biyonik

  1. Ortam değişkenlerini global olarak tanımlayın. İş düzeyi özelliği, genel değişkenleri geçersiz kılar.
  • TERM=dub öğesinin yalnızca Gradle proje örnekleri için gerekli olduğunu unutmayın.
  • ENVIRONMENT_NAME altında, test imzalama için "TEST" ve canlı imzalama için "PROD" yerleştirin.

ortam:

  küresel:

    – PROJECT_NAME=”MerhabaDünya”

    – PROJECT_VERSION=”0.0.1″

    – TERM=aptal

    – ÇEVRE_NAME=”TEST”

  1. Aşamaların sırasını belirtin. Bir aşamadaki tüm işler, bir sonraki aşama yürütülmeden önce tamamlanmalıdır.

aşamaları:

  - inşa etmek

  - işaret

Yapım aşamasını ana hatlarıyla belirtin  

Meslekler:

  şunları içerir:

        – aşama: inşa

  1. iş adı

      isim: build-maven

  1. Kullanılacak Ubuntu dağıtımı

      bkz: biyonik

  1. İmzalamak için docker komutunu kullanın  

      hizmetler:

        - liman işçisi

  1. Projeyi oluşturmak için dotnet-cli kullanın

      dil: java

  1. Projeyi oluşturmak için Java sürümü

      jdk:

      - oraclejdk17

  1. Hızlandırmak için m2 dizinini önbelleğe alın

      cache:

        dizinler:

        – $ANA SAYFA/.m2

  1. Projeyi oluşturmadan önce çalıştırılacak Before betiğini yazın

      önce_script:

        # Yapıtlar için dizinler oluşturun

        – mkdir -p ${TRAVIS_BUILD_DIR}/eserler

        – mkdir -p ${TRAVIS_BUILD_DIR}/paketler

        # Maven oluşturma seçeneklerini ayarlayın

        – dışa aktar MAVEN_CLI_OPTS=”–toplu mod –errors –fail-at-end –show-version -DinstallAtEnd=true -DdeployAtEnd=true”

  1. Projeyi oluşturmak için komut dosyasını yazın.
  • Bu imzalama ö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.

      senaryo:

        # Maven Seçenekleri ile Maven projesi oluşturun

        – mvn $MAVEN_CLI_OPTS temiz kurulum -f java/pom.xml

         # Yerleşik yapıtları yapıtlar dizinine kopyalayın

        – cp Java/target/${PROJECT_NAME}-${PROJECT_VERSION}.jar ${TRAVIS_BUILD_DIR}/packages/${PROJECT_NAME}.jar

     

  1. Başarılı olursa işe eklenmesi gereken dosya ve dizinlerin bir listesinin nasıl belirtileceğini ana hatlarıyla belirtin.

      çalışma alanları:

        oluşturmak:

          isim: maven-kavanoz-eserler

          yollar:

            # İmza işini kullanmak için yapıyı kaydedin

            – ${TRAVIS_BUILD_DIR}/paketler/${PROJECT_NAME}.jar

İşaret aşamasını ana hatlarıyla belirtin

 – aşama: işaret

  1. İş adını yazın

      isim: işaret-jar-dosyası

  1. Ubuntu dağıtımını kullanmak için yerleştirin

      bkz: biyonik

  1. İmzalamak için Docker komutunu kullanın  

      hizmetler:

        - liman işçisi

     

  1. Belirli işler için ortam değişkenlerini tanımlayın.
  • 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. Both yöntemler TravisCI ile doğru şekilde imzalayabilir.

      ortam:

        KOMUT = ”işaret”

  1. Projeyi oluşturmak için dotnet-cli kullanın

      dil: java

  1. Projeyi oluşturmak için Java sürümü

      jdk:

      - oraclejdk17

  1. Projeyi oluşturmadan önce çalıştırılacak komut dosyasından önce

      önce_script:

        # Yapıtlar için dizinler oluşturun

        – mkdir -p ${TRAVIS_BUILD_DIR}/eserler

        – mkdir -p ${TRAVIS_BUILD_DIR}/paketler

     

  1. Projeyi oluşturmak için komut dosyası

      senaryo:

        # Docker CodeSigner Docker Görüntüsünü Çekin

        – liman işçisi çekme ghcr.io/sslcom/codesigner:latest

        # CodeSigner Docker görüntüsüyle yapıyı imzalayın

        – docker run -i –rm –dns 8.8.8.8 –ağ ana bilgisayarı –volume ${TRAVIS_BUILD_DIR}/packages:/codesign/examples

          –hacim ${TRAVIS_BUILD_DIR}/artifacts:/codesign/output

          -e KULLANICI ADI=${KULLANICI ADI} -e ŞİFRE=${ŞİFRE} -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/examples/${PROJECT_NAME}.jar -output_dir_path=/codesign/output

  1. Başarılı olursa işe eklenmesi gereken dosya ve dizinlerin listesini belirtmek için kullanılır.

      çalışma alanları:

        kullanımı:

          – maven-kavanoz-eserler

        oluşturmak:

          isim: imzalı kavanoz dosyası

          yollar:

            # İmzalı eseri kaydet

            – ${TRAVIS_BUILD_DIR}/artifacts/${PROJECT_NAME}.jar

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

Travis'e gidin ve Ayarlar düğmesine tıklayın

Her değişken için değer ekleyin

Aşağı doğru kaydırın Ortam Değişkenleri bölümüne gidin ve her bir değişkenin değerini eklemek için Ekle düğmesini tıklayın.

Github deposu oluşturun

Github'da push komutlarını arayın

Push komutlarını editörünüzdeki bir terminale yazın

Oluşturma işinin tamamlanmasını bekleyin

Travis'te, kodu bastıktan sonra derleme işi otomatik olarak başlamalıdır.

Kod imzalama aşamasını başlatın

Tıkla işaret bölümü KodSignAracı imza sürecini başlatmak için

Sanal makinenizin önyüklemeyi bitirmesini bekleyin

Kod imzalamanın başarılı olup olmadığını onaylayın

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 Travis CI Ardışık Düzeni

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

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