문제

나는 읽고 있었다 코드 서명 인증서가 만료되면 어떻게 되나요? 좀 더 확실한 답변이 궁금합니다.제공된 답변은 자체 CA 설정에 관한 것입니다.자체 CA를 사용하더라도 만료되는 코드 인증서를 처리해야 합니다.

타임스탬프 서비스를 사용하지 않고 코드에 서명한 경우 인증서가 만료된 후 코드는 더 이상 신뢰할 수 없으며 보안 설정에 따라 실행이 허용되지 않을 수 있습니다.1~2년마다 새 인증서 또는 갱신된 인증서를 사용하여 모든 코드에 다시 서명해야 합니다.

신뢰할 수 있는(디지털) 타임스탬프를 사용하면 인증서 자체가 만료된 후에도 디지털 서명이 유효할 수 있습니다.변경한 경우에만 새 인증서로 코드에 다시 서명해야 합니다.

이 말이 다 맞는 것 같나요?그렇다면 어떤 타임스탬프 서비스를 사용할지에 대한 추천이 필요합니다. 실제로 서비스를 사용해 본 사람의 추천이 필요합니다.또한 자체 CA가 되는 것과 유사한 내부 솔루션이 있는지 알고 싶습니다.

현재 이는 PowerShell 스크립트에 적용되지만 결국에는 다른 코드에서도 동일한 문제가 발생하게 됩니다.

업데이트:타임스탬프를 사용하여 PS 스크립트에 서명하는 방법 샘플(이에 대한 스크립트를 만들 수 있음):

Set-AuthenticodeSignature -filepath "D:\Projects\A Sample\MyFile.ps1" 
  -cert gci cert:\CurrentUser\My -codesigning 
  | where -Filter {$_.FriendlyName -eq "Thawte Code Signing"}
  -IncludeChain All 
  -TimeStampServer "http://timestamp.verisign.com/scripts/timstamp.dll"

그런 다음 서명자 인증서 및 타임스탬퍼 인증서를 보려면 다음을 수행할 수 있습니다.

Get-AuthenticodeSignature MyFile.ps1 | fl *

인증서와 타임스탬퍼 인증서 모두에 대한 제목(CN, OU 등), 발급자, 이전/이후 날짜 및 지문을 제공합니다.또한 서명 상태를 나타내는 메시지도 받게 됩니다.

도움이 되었습니까?

해결책

신뢰할 수있는 인증서 제공 업체 중 하나 (Verisign, Thawte, Comodo 등)를 선택하는 것이 좋습니다. 이를 통해 사용자가 개인 루트 CA를 명시 적으로 신뢰하지 않고 소프트웨어에 서명 할 수 있습니다. 우리는 인증서가 만료 된 후에도 소프트웨어가 유효하지 않은 문제없이 Timestamping과 함께 Verisign과 Thawte, Comodo 심지어 Godaddy를 모두 사용했습니다.

다른 팁

타임 스탬핑은 무료 서비스입니다. 실제로 주어진 시간에 파일에 서명했는지 확인하는 신뢰할 수있는 제공자 일뿐입니다. Verisign의 타임 스탬프 서비스는 표준 서비스입니다. Set-Authenticodesignature에 대한 도움의 마지막 예는 사용 방법을 보여줍니다.

Lee Holmes [MSFT] Windows PowerShell 개발 Microsoft Corporation

결국 코드를 ​​사임해야 하는 상황을 피할 수는 없습니다.자체 CA를 실행하는 것의 장점은 기본값보다 수명이 긴 코드 서명 인증서를 발급하도록 선택할 수 있으므로 사임하기 전에 더 오래 기다릴 수 있다는 것입니다.물론 단점은 처리해야 할 다른 서비스나 서버(CA)가 있다는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top