コード署名証明書の有効期限が切れるとどうなるかを読んでいました-スタックオーバーフローと、より確かな答えについて疑問に思いました。提供された答えは、独自の 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 など)、発行者、前後の日付、および証明書とタイムスタンプ作成者の証明書の両方の拇印が表示されます。署名のステータスを示すメッセージも表示されます。