MSIX 영구 ID

이 기능을 사용하면 앱의 업데이트 환경을 유지하면서 새 인증서로 패키지에 서명할 수 있습니다. 즉, 이를 통해 패키지는 이전(원래) 인증서로 서명할 필요 없이 플랫폼에서 이전 패키지 ID를 유지할 수 있습니다. Windows Insider Preview 빌드 22000부터는 이전 인증서와 서명에 사용되는 새 인증서 간의 관계를 표시하기 위해 아티팩트를 만들어야 합니다. 다음은 패키지 ID를 사용하여 업데이트 환경을 유지하는 방법에 대한 단계별 설명입니다.

요구 사항

  • Windows SDK를 통해 MakeAppx.exe 가져옵니다. 이 기능은 현재 Windows SDK Preview 22000에서 사용할 수 있습니다.
  • Windows SDK를 통해 SignTool.exe 가져옵니다. 이 기능은 현재 Windows SDK Preview 22000에서 사용할 수 있습니다.
  • 원래 패키지에 서명하는 데 사용된 이전 인증서(CN=Old)
  • 패키지에 서명하는 데 사용할 새 인증서(CN=New)

방법 설명

패키지 ID를 유지하면서 새 인증서로 패키지에 서명하는 방법에 대한 단계별 지침입니다.

아티팩트 만들기

  1. 이전 및 새 게시자를 자세히 설명하는 XML 아티팩트 작성 원하는 이름을 지정합니다. artifact.xml.
<?xml version="1.0" encoding="UTF-8"?>
<Publisher xmlns="http://schemas.microsoft.com/appx/publisherbridging/2021" Old="CN=Old" New="CN=New" />
  1. CDF(카탈로그 정의 파일)를 작성하여 아티팩트 서명에 사용할 카탈로그를 만듭니다. 원하는 이름을 artifact.cdf로 지정합니다.
[CatalogHeader]
Name=artifact.cat
CatalogVersion=2
HashAlgorithms=SHA256

[CatalogFiles]
<HASH>artifact.xml=artifact.xml
  1. 이 CDF에서 makecat.exe 실행합니다. 지정된 파일을 만듭니다.
makecat.exe artifact.cdf
  1. 이전 인증서를 사용하여 카탈로그 서명
signtool.exe sign /f old-cert.pfx /fd SHA256 artifact.cat

이 시점에서는 XML 및 CAT 파일만 유지하면 됩니다. 여러 아티팩트만 만들 수 있지만 플랫폼은 현재 최대 5개까지 지원합니다.

참고

카탈로그 파일을 타임스탬프하는 것이 좋습니다. 카탈로그가 타임스탬프가 아닌 경우 이전 인증서가 만료되는 순간 아티팩트가 쓸모 없게 됩니다.

패키지 만들기

  1. 사용할 아티팩트 makeappx.exe 알려주는 게시자 브리징 파일을 만듭니다. 이 파일은 매핑 파일과 같습니다. 원하는 이름을 지정합니다. artifacts.txt
[PublisherBridging]
"artifact.xml" "artifact.cat"

각 줄에는 XML 및 CAT 파일 경로 쌍이 포함되어야 합니다. 아티팩트가 적용될 때 정렬되어야 합니다. Publisher1-Publisher2로 이동하는 아티팩트와 Publisher2-Publisher3>용 아티팩트가 두 개 있는 경우 Publisher1-Publisher2>>에 대한 아티팩트가 먼저 나열되어야 합니다.

  1. /pb 플래그를 사용하여 makeappx.exe 호출하여 게시자 브리징 파일을 가리킵니다.
makeappx.exe pack /p app.msix /d .\app\ /pb artifacts.txt
  1. 새 인증서를 사용하여 패키지 서명
signtool.exe sign /f new-cert.pfx /fd SHA256 app.msix

이제 아티팩트가 내부에 저장되고 새 인증서로 서명된 패키지가 있습니다. 다른 MSIX 패키지와 마찬가지로 패키지를 배포할 수 있습니다.

고려 사항

  • 카탈로그에 타임스탬프를 지정하는 것이 좋습니다. 이렇게 하려면 카탈로그 경로 앞에 signtool 호출에 이러한 인수를 추가해야 합니다. /td SHA256 /tr

  • 새 인증서로 서명된 패키지를 설치하려면 플랫폼용 컴퓨터에 이전 인증서(타임스탬프에 권장)를 설치해야 합니다.

  • 이 기능을 활용하려면 이전 인증서가 만료되기 전에 이 작업을 수행해야 합니다.

  • 이 기능은 MSIX 패키지와 MSIX 번들 모두에서 작동합니다.