[Windows] 使用 signtool 檢視數位簽章中 Timestamping 的內容
最近需要檢查我們幫檔案做的數位簽章 (signature) ,
要看看裡面的 Timestamping Certificate 到期日,
不過 Mac/Linux 上的 openssl 似乎沒有很方便的指令可以看…
最後還是回到了 Windows 上,來看看怎麼用 signtool 檢查簽章的內容吧~
1. 安裝 Windows 10 SDK
安裝 Windows 10 SDK 的原因,就只是為了取得它裡面的 signtool…
到 Windows 10 SDK 官網,下載安裝包後開始執行。
安裝過程中要選擇要安裝的元件,可以把全部都取消勾選,
只留 Windows SDK Signing Tools for Desktop Apps 就好:
裝好之後,signtool 的路徑可能是像下面這樣 (版本號可能不同):
“C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\signtool.exe”
2. 使用 signtool 檢視簽章內容
我們專案有一個 checksum 的文字檔,裡面放各個檔案的 sha256 值,
然後 checksum.p7 是 checksum 這個檔案的數位簽章。
要使用 signtool 來檢視簽章內容的話,可以執行:
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\signtool.exe" verify /v /p7 /p7content checksum checksum.p7
這是執行的結果:
上面的結果中可以分成兩個區塊,
第一個區塊是數位簽章的部分,可以看到憑證信任鍊是:
DigiCert Trusted Root G4 > DigiCert Trusted G4 Code Signing … CA 1> Trend Micro
第二個區塊就是我們這次想要看的 Timestamping 簽章的部分,
可以看到憑證信任鍊是:
DigiCert Assured ID Root CA > DigiCert Trusted Root G4 > DigiCert Trusted G4 … TimeStamping CA > DigiCert Timestamp 2022 – 2
同時也可以看到這個 Timestamping 憑證的效期是到 2033/11/21~