다른 답변에서 언급했듯이 먼저 코드 서명에 적합한 인증서를 구입해야합니다. 이것은 수천 달러에 달할 것이며 수천명에 달할 것입니다. 최근에 Globalsign으로 회사 인증서를 갱신 할 때 회사가 합법적인지 확인하기위한 조사도있었습니다. 등록 절차에 모바일 번호를 사용했기 때문에 회사 회계사가 보낸 편지에서 우리가 실제 비즈니스인지 확인하기를 원했습니다 .
실행 파일에 서명하려면 MSBuild 작업을 사용합니다. 당신은 (위의 예에서 CertificateStoreName="My"
참조) 개인 인증서 저장소에 인증서를 설치해야합니다 위와 같이이 작업을 수행하려면
<!--
Installer files that need to be signed.
-->
<ItemGroup>
<InstallerSignedFiles Include="$(BuildRoot)path\to\myinstaller.msi"/>
<InstallerSignedFiles Include="$(BuildRoot)path\to\setup.exe"/>
</ItemGroup>
<Target Name="ReleasePackaging">
<!-- Sign the files we're going to release -->
<SignTool
CertificateStoreName="My"
CertificateSubjectName="MyCompany"
Description="My application description"
TimestampServerUrl="http://timestamp.verisign.com/scripts/timstamp.dll"
TargetFiles="@(InstallerSignedFiles)"
/>
</Target>
: 여기에 관련 조각 발췌 한 것입니다. Globalsign 웹 사이트에서이 설치는 인증서 다운로드 프로세스의 자동 부분이었습니다. 참고 : 인증서를 다운로드 할 때 Internet Explorer를 사용하면 Windows 인증서 저장소와 통합되므로 Internet Explorer를 사용하는 것이 좋습니다. 다운로드 컴퓨터의 인증서 저장소에 있으면 export it as a pfx file 수 있으며이를 빌드 컴퓨터로 전송하여 가져올 수 있습니다. 그것을 내 보내면 내 보낸 파일을 잘못 취급 할 경우를 대비하여 암호로 보호하는 것이 좋습니다.
위와 같이 SignTool MSBuild 작업을 사용하면 현재 Windows 사용자 계정과 연결된 개인 저장소 ("My")에서 인증서를 읽습니다. 즉, 인증서로 코드에 서명 할 수있는 사람을 제어 할 수 있습니다. 이는 좋은 일입니다. 신뢰할 수있는 개인 개발자 저장소로만 인증서를 가져와야합니다.
코드에 서명 할 때 타임 스탬프 서버를 사용하면 인증서가 만료 될 때 코드를 다시 서명 할 필요가 없습니다.
(https://knowledge.verisign.com/support/code-signing-support/index? 페이지 : 콘텐츠 & id = AR190) 타임 스탬프 서버에 대한 올바른 링크는 http://timestamp.verisign.com/scripts/timstamp.dll입니다. "참고 :"timstamp.dll "에는"e "문자가 포함되어 있지 않습니다." – marius
I 코드 샘플의 철자를 수정했습니다. –
[SignFile] (http://msdn.microsoft.com/en-us/library/ms164304.aspx) 작업 만 표시됩니다. 당신이 말하는이 "SignTool"작업은 무엇입니까? – Will