Skip to content

Commit b8de6c9

Browse files
committed
cd: align signing action with recommended setup
1 parent d8d13d5 commit b8de6c9

1 file changed

Lines changed: 14 additions & 39 deletions

File tree

.github/workflows/publish.yml

Lines changed: 14 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -91,56 +91,31 @@ jobs:
9191
name: azurehound-bin-${{ matrix.os }}-${{ matrix.arch }}
9292
path: unsigned/azurehound-bin-${{ matrix.os }}-${{ matrix.arch }}
9393

94-
- name: Install osslsigncode & pkcs11 engine
94+
- name: Setup SM_CLIENT_CERT_FILE
95+
shell: bash
9596
run: |
96-
sudo apt-get update
97-
sudo apt-get install -y osslsigncode libengine-pkcs11-openssl
97+
export SM_CLIENT_CERT_FILE=${RUNNER_TEMP}/Certifiact_pkcs12.p12
98+
echo "${{ secrets.SM_CLIENT_CERT_FILE_B64 }}" | base64 --decode > ${SM_CLIENT_CERT_FILE}
99+
echo "SM_CLIENT_CERT_FILE=${SM_CLIENT_CERT_FILE}" >> $GITHUB_ENV
98100
99-
- name: Install DigiCert Client Tools
101+
- name: Setup Software Trust Manager & Sign
100102
id: digicert
101103
uses: digicert/code-signing-software-trust-action@fae23a455ba4bde62b64fd7cb2f81ade788f5a95 # ratchet:digicert/code-signing-software-trust-action@v1.2.1
102-
103-
- name: Set PKCS#11 Paths
104-
id: pkcs11
105-
run: |
106-
SM_TOOLS_DIR=$(dirname "$(realpath '${{ steps.digicert.outputs.PKCS11_CONFIG }}')")
107-
echo "module=${SM_TOOLS_DIR}/smpkcs11.so" >> "$GITHUB_OUTPUT"
108-
LIB_PKCS11="$(dpkg -L libengine-pkcs11-openssl | grep "libpkcs11.so")"
109-
echo "engine=$LIB_PKCS11" >> "$GITHUB_OUTPUT"
110-
111-
- name: Sign Artifacts via DigiCert Signing Manager
104+
with:
105+
simple-signing-mode: true
106+
input: unsigned/azurehound-bin-${{ matrix.os }}-${{ matrix.arch }}/azurehound.exe
107+
keypair-alias: ${{ secrets.SM_KEYPAIR_ALIAS }}
112108
env:
113109
SM_HOST: ${{ secrets.SM_HOST }}
114110
SM_API_KEY: ${{ secrets.SM_API_KEY }}
115-
SM_CLIENT_CERT_FILE_B64: ${{ secrets.SM_CLIENT_CERT_FILE_B64 }}
111+
SM_CLIENT_CERT_FILE: ${{ env.SM_CLIENT_CERT_FILE}}
116112
SM_CLIENT_CERT_PASSWORD: ${{ secrets.SM_CLIENT_CERT_PASSWORD }}
117-
shell: bash
118-
run: |
119-
export SM_CLIENT_CERT_FILE=$(mktemp)
120-
printenv SM_CLIENT_CERT_FILE_B64 | base64 --decode > "$SM_CLIENT_CERT_FILE"
121-
trap 'rm $SM_CLIENT_CERT_FILE' EXIT
122113

123-
mkdir signed
124-
artifact=unsigned/azurehound-bin-${{ matrix.os }}-${{ matrix.arch }}/azurehound.exe
125-
smctl sign --keypair-alias "${{ secrets.SM_KEYPAIR_ALIAS }}" --input "$artifact" --openssl-pkcs11-engine "${{ steps.pkcs11.outputs.engine }}" --pkcs11-module "${{ steps.pkcs11.outputs.module }}" --tool osslsigncode --verbose
126-
mv "$artifact" "signed/azurehound.exe"
127-
128-
- name: Verify Signed Artifacts
129-
env:
130-
SM_HOST: ${{ secrets.SM_HOST }}
131-
SM_API_KEY: ${{ secrets.SM_API_KEY }}
132-
SM_CLIENT_CERT_FILE_B64: ${{ secrets.SM_CLIENT_CERT_FILE_B64 }}
133-
SM_CLIENT_CERT_PASSWORD: ${{ secrets.SM_CLIENT_CERT_PASSWORD }}
114+
- name: Move Signed Artifacts
134115
shell: bash
135116
run: |
136-
export SM_CLIENT_CERT_FILE=$(mktemp)
137-
printenv SM_CLIENT_CERT_FILE_B64 | base64 --decode > "$SM_CLIENT_CERT_FILE"
138-
smctl certificate download --keypair-alias "${{ secrets.SM_KEYPAIR_ALIAS }}" --format pem --chain --name cert-chain.pem
139-
trap 'rm $SM_CLIENT_CERT_FILE cert-chain.pem' EXIT
140-
141-
for artifact in signed/*; do
142-
osslsigncode verify -CAfile cert-chain.pem "$artifact"
143-
done
117+
mkdir signed
118+
mv unsigned/azurehound-bin-${{ matrix.os }}-${{ matrix.arch }}/azurehound.exe signed/azurehound.exe
144119
145120
- name: Zip Signed Executables
146121
run: |

0 commit comments

Comments
 (0)