DataScience
Published 2023. 4. 15. 09:32
Tauri 배포 Rust
728x90
cargo tauri build


바이너리 자체는 src-tauri/target/release/[앱 이름]에 위치하고, 설치 프로그램은 src-tauri/target/release/bundle/에 위치합니다.

윈도우 코드 서명

애플리케이션에 코드 서명을 하면 사용자로 하여금 앱으로 위장한 맬웨어가 아닌 정식 실행 파일을 다운로드했음을 알 수 있게 해줍니다. 필수는 아니지만, 이는 앱에 대한 사용자의 신뢰를 향상시켜줍니다.

사전 요구 사항

  • Windows - 다른 플랫폼을 사용할 수 있지만, 이 자습서에서는 Powershell 기본 기능을 사용합니다.
  • 동작하는 Tauri 애플리케이션
  • 코드 서명 인증서 - Microsoft's docs에 나열된 서비스 중 하나를 얻을 수 있습니다. 해당 목록에 포함된 것보다 비 EV 인증서에 대한 추가 권한이 있을 가능성이 있으므로, 직접 비교하고 위험을 감수하고 하나를 선택하세요.
  • SSL 인증서는 작동하지 않으므로, 코드 서명 인증서를 받아야 합니다!

시작하기
A..cer파일을 .pfx로 전환하기

  1. 다음 항목이 필요합니다:
  • 인증서 파일(cert.cer)
  • 비공개 키 파일(private-key.key)
  1. 명령 프롬프트를 열고 cd Documents/Certs를 입력하여 현재 디렉토리로 바꾸어줍니다.
  2. openssl pkcs12 -export -in cert.cer -inkey private-key.key -out certificate.pfx를 이용해 .cer을 .pfx로 변환합니다.
  3. 잊지 마세요! 내보내기 암호를 입력하라는 메시지가 표시되어야 합니다.

B. 키스토어에 .pfx파일 불러오기
이제, .pfx 파일을 가져옵니다.

  1. $WINDOWS_PFX_PASSWORD = 'MYPASSWORD'를 이용해 내보내기 암호를 변수에 할당해줍니다.
  2. 이제, Import-PfxCertificate -FilePath Certs/certificate.pfx -CertStoreLocation Cert:\CurrentUser\My -Password (ConvertTo-SecureString -String $env:WINDOWS_PFX_PASSWORD -Force -AsPlainText)를 이용해 인증서를 가져옵니다.

C. 변수 준비

  1. 인증서의 SHA-1 지문이 필요합니다. openssl pkcs12 -info -in certificate.pfx
Bag Attributes
    localKeyID: A1 B1 A2 B2 A3 B3 A4 B4 A5 B5 A6 B6 A7 B7 A8 B8 A9 B9 A0 B0

  1. localKeyID 공백 없이 를 캡처합니다 . 이 예에서는 A1B1A2B2A3B3A4B4A5B5A6B6A7B7A8B8A9B9A0B0입니다 . 이것은 우리의 certificateThumbprint입니다..
  2. 인증서에 사용되는 SHA 다이제스트 알고리즘이 필요합니다(sha256)
  3. 타임스탬프 URL도 필요합니다. 이것은 인증서 서명 시간을 확인하는 데 사용되는 시간 서버입니다. 'http://timestamp.comodoca.com`

tauri.conf.json파일 준비
이제 certificateThumbprint, digestAlgorithm, timestampUrl이 있으므로 tauri.conf.json를 열 것입니다 .

tauri.conf.json에서 tauri -> bundle -> windows섹션을찾습니다 . 아래와 같이 작성합니다.

"windows": {
        "certificateThumbprint": "A1B1A2B2A3B3A4B4A5B5A6B6A7B7A8B8A9B9A0B0",
        "digestAlgorithm": "sha256",
        "timestampUrl": "http://timestamp.comodoca.com"
}
  1. 저정하고 yarn | yarn build 실행합니다
  2. 콘솔 출력창에 아래와 같이 출력될 것입니다.
info: signing app
info: running signtool "C:\\Program Files (x86)\\Windows Kits\\10\\bin\\10.0.19041.0\\x64\\signtool.exe"
info: "Done Adding Additional Store\r\nSuccessfully signed: APPLICATION FILE PATH HERE

Linux 패키지 코드 서명

요구사항

  • gpg 혹은 gpg2
    gpg2 --full-gen-key

AppImages 서명하기
다음 환경 변수를 설정하여 AppImage에 서명을 포함할 수 있습니다:

  • SIGN: AppImage에 서명하려면 1로 설정합니다.
  • SIGN_KEY: 서명 시 특정 GPG Key ID를 사용하는 것은 선택적인 변수입니다.
  • APPIMAGETOOL_SIGN_PASSPHRASE: 서명키 비밀번호. 설정하지 않으면 gpg는 비밀번호를 입력할 수 있도록 대화 상자를 표시합니다. 자동화 작업으로 실행할 때 이를 반드시 설정해야 합니다.

다음 명령을 실행하여 AppImage에 포함된 서명을 표시할 수 있습니다:
./src-tauri/target/release/bundle/appimage/$APPNAME_$VERSION_amd64.AppImage --appimage-signature

$APPNAME 및 $VERSION 값은 당신의 설정에 따라 올바른 값으로 변경해야 합니다.

'Rust' 카테고리의 다른 글

개발자들이 가장 사랑하는 언어 Rust 소개  (158) 2023.04.17
Tauri 설치부터 배포까지 (리눅스 빌드)  (96) 2023.04.16
Tauri 빌드  (110) 2023.04.14
Tauri 테스트  (42) 2023.04.14
Tauri 디버깅  (106) 2023.04.13
profile

DataScience

@Ninestar

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!