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를 기본 동안 새 인증서로 패키지에 서명하는 방법에 대한 단계별 지침입니다.
아티팩트 만들기
- 이전 게시자와 새 게시자를 자세히 설명하는 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" />
- CDF(카탈로그 정의 파일)를 작성하여 아티팩트 서명에 사용할 카탈로그를 만듭니다. 원하는 이름을 artifact.cdf로 지정합니다.
[CatalogHeader]
Name=artifact.cat
CatalogVersion=2
HashAlgorithms=SHA256
[CatalogFiles]
<HASH>artifact.xml=artifact.xml
- 이 CDF에서 makecat.exe를 실행합니다. 지정된 파일을 만듭니다.
makecat.exe artifact.cdf
- 이전 인증서를 사용하여 카탈로그 서명
signtool.exe sign /f old-cert.pfx /fd SHA256 artifact.cat
이 시점에서는 XML 및 CAT 파일만 유지하면 됩니다. 여러 아티팩트만 만들 수 있지만 플랫폼은 현재 최대 5개까지 지원합니다.
참고 항목
카탈로그 파일을 타임스탬프하는 것이 좋습니다. 카탈로그에 타임스탬프가 없으면 이전 인증서가 만료되는 순간 아티팩트가 쓸모 없게 됩니다.
패키지 만들기
- makeappx.exe에 사용할 아티팩트를 알려주는 게시자 브리징 파일을 만듭니다. 이 파일은 매핑 파일과 같습니다. 원하는 이름을 artifacts.txt로 지정합니다.
[PublisherBridging]
"artifact.xml" "artifact.cat"
각 줄에는 XML 및 CAT 파일 경로 쌍이 포함되어야 합니다. 아티팩트가 적용될 때 정렬되어야 합니다. Publisher1-Publisher2로 이동하는 아티팩트와 Publisher2-Publisher3>용 아티팩트가 두 개 있는 경우 Publisher1-Publisher2>>에 대한 아티팩트가 먼저 나열되어야 합니다.
- /pb 플래그를 사용하여 makeappx.exe를 호출하여 게시자 브리징 파일을 가리킵니다.
makeappx.exe pack /p app.msix /d .\app\ /pb artifacts.txt
- 새 인증서를 사용하여 패키지 서명
signtool.exe sign /f new-cert.pfx /fd SHA256 app.msix
이제 아티팩트가 내부에 저장되고 새 인증서로 서명된 패키지가 있습니다. 다른 MSIX 패키지와 마찬가지로 패키지를 배포할 수 있습니다.
고려 사항
카탈로그를 타임스탬프로 표시하는 것이 좋습니다. 이렇게 하려면 카탈로그 경로 앞에 signtool 호출에서 이러한 인수를 추가해야 합니다. /td SHA256 /tr
새 인증서로 서명된 패키지를 설치하려면 플랫폼용 컴퓨터에 이전 인증서(타임스탬프에 권장)를 설치해야 합니다.
이 기능을 활용하려면 이전 인증서가 만료되기 전에 이 작업을 수행해야 합니다.
이 기능은 MSIX 패키지와 MSIX 번들 모두에서 작동합니다.