맞춤 빌드 코드 서명

Mattermost v11.11번역일: 2026-09-02원본 보기

코드 서명은 맞춤 Mattermost 빌드의 진위와 무결성을 보장하는 데 필수적인 과정입니다. 이 가이드에서는 Windows, Mac, Linux에서 자체 인증서로 빌드에 코드 서명을 하는 절차를 설명합니다.

중요

애플리케이션 서명에 관한 각 운영 체제의 가이드라인과 모범 사례를 반드시 따르세요.

사전 요구 사항

Windows

  1. 코드 서명 인증서: 인증 기관(CA)에서 인증서를 발급받거나, 적절한 경우 자체 서명 인증서를 사용합니다.
  2. SignTool: Windows SDK에 포함되어 있습니다.

Linux

  1. GPG 키: GPG 키가 없다면 새로 만듭니다.
  2. GnuPG: 설치되어 있지 않다면 GnuPG를 설치합니다.

Mac

  1. Developer ID Application 인증서: Apple에서 발급받습니다. Apple Developer 계정이 필요합니다.
  2. Xcode: Xcode가 설치되어 있는지 확인합니다.

진행 절차

Windows

  1. SignTool 설치: Windows SDK를 설치해 SignTool 유틸리티를 사용할 수 있게 합니다.

  2. 코드 서명 인증서 발급: CA를 통해 인증서(.pfx 파일)를 구매하거나 생성합니다.

  3. 인증서 가져오기: .pfx 파일을 열어 Windows 인증서 저장소로 가져옵니다.

  4. 실행 파일 서명

    • 관리자 권한으로 명령 프롬프트를 엽니다.
    • SignTool로 실행 파일에 서명합니다.
    signtool sign /v /s "My" /sha1 <cert hash> /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 <path-to-your-executable>

Linux

  1. GPG 키 생성 또는 가져오기: GPG 키가 없다면 다음과 같이 생성합니다.

    gpg --full-generate-key

    기존 GPG 키가 있다면 다음과 같이 가져옵니다.

    gpg --import /path/to/your-key.asc
  2. 패키지 서명: dpkg-sig로 Debian 패키지에 서명합니다.

    dpkg-sig --sign builder your-package.deb

    rpmsign으로 RPM 패키지에 서명합니다.

    rpmsign --addsign your-package.rpm
  3. 서명 검증: .deb 패키지의 서명을 검증합니다.

    dpkg-sig --verify your-package.deb

    .rpm 패키지의 서명을 검증합니다.

    rpm --checksig your-package.rpm

Mac

  1. 코드 서명 인증서 발급: Apple Developer 계정에서 Developer ID Application 인증서를 생성해 내려받습니다.

  2. 인증서 가져오기: 인증서를 더블 클릭해 키체인으로 가져옵니다.

  3. 애플리케이션 서명: Xcode의 codesign 도구로 애플리케이션에 서명합니다.

    codesign --deep --force --verify --verbose --sign "Developer ID Application: Your Name (TeamID)" /path/to/your.app
  4. [선택] 서명 검증: 모든 항목이 올바르게 서명되었는지 서명을 검증합니다.

    spctl --assess --verbose=4 /path/to/your.app
    codesign -dv --verbose=4 /path/to/your.app

요약

  • Windows: 가져온 코드 서명 인증서와 함께 Windows SDK의 SignTool을 사용합니다.
  • Mac: Apple Developer ID 인증서와 함께 Xcode의 codesign 및 spctl 도구를 사용합니다.
  • Linux: GnuPG로 GPG 키를 생성해 서명하고, .deb 패키지에는 dpkg-sig를, .rpm 패키지에는 rpmsign을 사용합니다.