• Bewerte uns auf OMR Reviews: Klick

  • 25Reports geht live, schaut es euch an: Klick

  • Achtet bitte in den Beiträgen darauf, dass ihr keine Informationen teilt, die der DSGVO unterliegen können. Verpixelt bitte die entsprechenden Stellen in Screenshots, postet hier auf keinen Fall Messagatracks ohne Rücksprache und auch in den Log Files können persönliche oder sensible Daten enthalten sein.

    Macht uns auch bitte per PN darauf aufmerksam wenn ihr etwas seht. Schreibt mich (@sören) einfach direkt an. 

  • Zertifikate vom Deutschen Forschungsnetz beziehen (Harica CA)? Klick

Verständnisfrage zur Action "Check certificate policies" in smime-ca-bundle

869288141

Well-known member
Registriert
29 Oktober 2022
Beiträge
644
Reaktionspunkte
162
Hallo NoSpamProxy Team,
ich habe mir euer Repository smime-ca-bundle (Link) und insbesondere die Action "Check certificate policies" angesehen.
Dabei bin ich auf einen Punkt gestoßen, den ich bisher nicht ganz nachvollziehen kann.

Im Workflow gibt es folgenden Step:
YAML:
- name: Check PEM encoding
  env:
    ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
  run: |
    # check PEM encoding
    if [[ ${ALL_CHANGED_FILES} -ne 0 ]]
    then
      # do not fail check if no certificate was added or changed
      exit
    fi

    openssl version
    set +e
    fail=false
    for file in ${ALL_CHANGED_FILES}; do
      openssl x509 -noout -inform PEM -in "$(echo "$file" | sed 's@\\@@g')"
      if [[ $? -ne 0 ]]
      then
        echo "::error file=$file::$file is not PEM encoded."
        fail=true
      fi
    done

    if [[ "$fail" == true ]]
    then
      echo "At least one certificate was not PEM encoded."
      exit 1
    fi
Wie zu sehen ist, wird die Variable $fail auf true gesetzt, sobald mindestens eine Datei nicht im PEM-Format vorliegt.

Der darauffolgende Step sieht folgendermaßen aus:
YAML:
- name: Check file name and location
  if: always()

Am Ende dieses Steps gibt es erneut eine Abfrage in Bash:
Bash:
...
if ($fail -eq $true) {
    echo "At least one certificate is in a wrong location."
    exit 1
}

Für mich ist das aktuell nicht ganz klar: Sollte der zweite Step nicht nur ausgeführt werden, wenn $fail im vorherigen Step false war?
Vielen Dank vorab für eine kurze Erklärung!


Gruß,
Daniel
 
Hallo Daniel,

Prinzipiell könnte man das machen und wäre im Normalfall auch effizienter.

Derzeit bringt das Vorgehen aber zwei Vorteile:
1. ich musste mich nicht darum kümmern das der zweite Step die verarbeiteten Daten vom ersten kennt, vermutlich nicht aufwändig, aber ich muss hier auch für mich zeitlich effizient sein da es „nur nebenbei“ bearbeitet wird
2. man bekommt immer den Output für beides und weiß (falls man z.b. manuell ein Zertifikat platziert hat) wo ein Fehler unterlaufen ist.

LG
Jan
 
Zurück
Oben