snapshot of https://github.com/mattermost/mattermost.git (master, 2026-09-16; blobs > 131072B omitted)
Some checks failed
Server CI / Postgres (shard 0) (push) Has been skipped
Server CI / Postgres (shard 3) (push) Has been skipped
BuildEnv Docker Image / build-image (push) Failing after 4s
BuildEnv Docker Image / build-image-fips (push) Failing after 4s
Migration Review & Release Notes / Generate migration review & release notes (push) Failing after 3s
Server CI / Build Environment (push) Failing after 3s
Server CI / Postgres (shard 1) (push) Has been skipped
Tools CI / check-style (mattermost-govet) (push) Failing after 4s
Server CI / Postgres (shard 2) (push) Has been skipped
Tools CI / check-style (mmgotool) (push) Failing after 3s
Server CI / Elasticsearch v8 Compatibility (push) Has been skipped
Server CI / OpenSearch v2 Compatibility (push) Has been skipped
Server CI / Postgres FIPS (shard 0) (push) Has been skipped
Tools CI / Test (mattermost-govet) (push) Failing after 3s
Server CI / Postgres FIPS (shard 1) (push) Has been skipped
Server CI / Postgres FIPS (shard 2) (push) Has been skipped
Tools CI / Test (mmgotool) (push) Failing after 3s
Server CI / Postgres FIPS (shard 3) (push) Has been skipped
Server CI / Run mmctl tests (push) Has been skipped
Server CI / Run mmctl tests (FIPS) (push) Has been skipped
Server CI / Merge Postgres Test Results (push) Has been skipped
Server CI / Merge Postgres FIPS Test Results (push) Has been skipped
Server CI / Check backport migrations (push) Has been skipped
Server CI / Check generated files (push) Has been skipped
Server CI / check-style (push) Has been skipped
Server CI / Vet API (push) Has been skipped
Server CI / Build mattermost server app (push) Has been skipped
Server CI / Server CI Complete (push) Failing after 2s
Server CI / Server CI Artifacts (push) Has been skipped
Server CI / Sentry Upload (push) Has been skipped
Server CI / Server CI Report (push) Failing after 5m1s
Server CI Nightly Race / Race Detector (push) Has been skipped
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Webapp CI Cache Warm / Warm Webapp node_modules Cache (push) Has been cancelled
E2E CI Cache Warm / Warm E2E npm Registry Cache (push) Has been cancelled
API / build (push) Has been cancelled
Web App CI / check-types (push) Has been cancelled
Web App CI / check-lint (push) Has been cancelled
Web App CI / check-i18n (push) Has been cancelled
Web App CI / check-external-links (push) Has been cancelled
Web App CI / test (platform) (push) Has been cancelled
Web App CI / test (mattermost-redux) (push) Has been cancelled
Web App CI / test (channels shard 1/4) (push) Has been cancelled
Web App CI / test (channels shard 2/4) (push) Has been cancelled
Web App CI / test (channels shard 3/4) (push) Has been cancelled
Web App CI / test (channels shard 4/4) (push) Has been cancelled
Web App CI / upload-coverage (push) Has been cancelled
Web App CI / build (push) Has been cancelled
YAML Lint / yamllint (push) Has been cancelled
Push mirrored docker images / cd/Push mirrored docker images (push) Has been cancelled
docs-cd / Build and deploy docs (push) Has been cancelled
Docs CI / build (push) Has been cancelled
E2E Cache Warm: Cypress deps / Warm Cypress deps cache (push) Has been cancelled
Scorecards supply-chain security / Scorecard analysis (push) Has been cancelled
Server CI Weekly / Postgres FIPS (push) Has been skipped
Server CI Weekly / Run mmctl tests (FIPS) (push) Has been skipped
Server CI Weekly / Postgres with binary parameters (push) Has been skipped
Server CI Weekly / Build Environment (push) Failing after 1s
Server CI Cache Warm / Warm Go Module and Build Cache (push) Failing after 2s
Server CI Nightly Race / Build Environment (push) Failing after 1s

This commit is contained in:
upstream-mirror
2026-09-16 00:29:55 +05:00
commit 240db4e2a7
15309 changed files with 2173406 additions and 0 deletions

View File

@@ -0,0 +1,128 @@
---
title: "Code signing custom builds"
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
<PlanAvailability slug="all-commercial" />
Code signing is an essential process for ensuring the authenticity and integrity of your custom `Mattermost` builds. This guide provides steps on how to code sign a build using your own certificates for Windows, Mac, and Linux.
<Important>
Make sure to follow each operating system's guidelines and best practices for signing applications.
</Important>
## Prerequisites
<Tabs>
<TabItem value="windows" label="Windows">
1. **Code Signing Certificate**: Obtain a certificate from a Certificate Authority (CA) or use a self-signed certificate if suitable.
2. **SignTool**: Available as part of the Windows SDK.
</TabItem>
<TabItem value="linux" label="Linux">
1. **GPG Key**: Create a GPG key if you don't have one.
2. **GnuPG**: Install [GnuPG](https://gnupg.org/howtos/card-howto/en/ch02.html) if not already installed.
</TabItem>
<TabItem value="mac" label="Mac">
1. **Developer ID Application Certificate**: Obtain from Apple. It requires an Apple Developer account.
2. **Xcode**: Ensure [Xcode](https://developer.apple.com/xcode/) is installed.
</TabItem>
</Tabs>
## Process
<Tabs>
<TabItem value="windows" label="Windows">
1. **Install SignTool**: Install the Windows SDK to access the `SignTool` utility.
2. **Obtain a Code Signing Certificate**: Purchase or create a certificate (`.pfx` file) via a CA.
3. **Import the Certificate**: Open the `.pfx` file and import it into the Windows Certificate Store.
4. **Sign the Executable**
- Open the command prompt as Administrator.
- Use `SignTool` to sign your executable:
``` sh
signtool sign /v /s "My" /sha1 <cert hash> /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 <path-to-your-executable>
```
</TabItem>
<TabItem value="linux" label="Linux">
1. **Create or Import Your GPG Key**: If you don't have a GPG key, create one:
``` sh
gpg --full-generate-key
```
Alternatively, import an existing GPG key, if you have one:
``` sh
gpg --import /path/to/your-key.asc
```
2. **Sign the Package**: Use `dpkg-sig` to sign a Debian package:
``` sh
dpkg-sig --sign builder your-package.deb
```
Use `rpmsign` to sign an RPM package:
``` sh
rpmsign --addsign your-package.rpm
```
3. **Verify the Signature**: Verify the signature of a `.deb` package:
``` sh
dpkg-sig --verify your-package.deb
```
Verify the signature of an `.rpm` package:
``` sh
rpm --checksig your-package.rpm
```
</TabItem>
<TabItem value="mac" label="Mac">
1. **Obtain a Code Signing Certificate**: Create a `Developer ID Application` certificate in your Apple Developer account and download it.
2. **Import the Certificate**: Double-click the certificate to import it into the Keychain.
3. **Sign the Application**: Use the `codesign` tool from Xcode to sign your application:
``` sh
codesign --deep --force --verify --verbose --sign "Developer ID Application: Your Name (TeamID)" /path/to/your.app
```
4. \[Optional\] **Verify the Signature**: Verify the signature to ensure everything is correctly signed:
``` sh
spctl --assess --verbose=4 /path/to/your.app
codesign -dv --verbose=4 /path/to/your.app
```
</TabItem>
</Tabs>
## Summary
- **Windows**: Use `SignTool` from the Windows SDK with your imported code signing certificate.
- **Mac**: Use `codesign` and `spctl` tools from Xcode with your Apple Developer ID certificate.
- **Linux**: Use `GnuPG` to create/sign with your GPG key, `dpkg-sig` for `.deb` packages, and `rpmsign` for `.rpm` packages.