【.NET】デジタル署名のタイムスタンプサーバ(timstamp.dll)は終了なので変更せよ

# はじめに
サーバーリプレース作業(Windows Server 2008R2 + Oracle 11g → Windows Server 2016 + PostgreSQL 9.6) を2018年から準備してきまして、2019年9月から全国25箇所に順次展開中です。
自社開発のアプリケーションにて[ClickOnce](https://ja.wikipedia.org/wiki/ClickOnce)(Webページからアプリケーションをインストールする技術)を使用したものがあります。

ClickOnce発行にVisual Studioを使用するとなると開発者しか作成できないため、誰でも発行できるように[Mage.exe](https://docs.microsoft.com/ja-jp/dotnet/framework/tools/mage-exe-manifest-generation-and-editing-tool)および[MageUI.exe](https://docs.microsoft.com/ja-jp/dotnet/framework/tools/mageui-exe-manifest-generation-and-editing-tool-graphical-client)と[SignTool.exe](https://docs.microsoft.com/ja-jp/dotnet/framework/tools/signtool-exe)を使用したバッチを作成してあります。
[【WSH】設定ファイル(xml,ini)の編集ツール](https://qiita.com/yaju/items/45799934a516ff4f3504)

確か先月(2020年2月)時点では何もエラーもなく発行できたのでのすが、3月になりセットアップのデジタル署名付与のところで下記のエラーが発生するようになりました。

```
Done Adding Additional Store
SignTool Error: The specified timestamp server either could not be reached or
returned an invalid response.
SignTool Error: An error occurred while attempting to sign: setup.exe
```

# 原因
バッチでタイムスタンプサーバーに「[http://timestamp.globalsign.com/scripts/timstamp.dll](http://timestamp.globalsign.com/scripts/timstamp.dll)」を使用していました。

```bat
echo セットアップのデジタル署名付与
delcert.exe setup.exe
signtool.exe sign /fd sha256 -f test.pfx -t http://timestamp.globalsign.com/scripts/timstamp.dll setup.exe
```

>http://timestamp.verisign.com/scripts/timstamp.dll has limped along for the last few years and had been working in a sort of depreciated state, but the new owners of the certificate issuing business, DigiCert, have issued a migration alert.
>
>They have officially put the old services to EOL as of the back end of 2019.
>[http-timestamp-verisign-com-scripts-timstamp-dll-not-available](https://stackoverflow.com/questions/9714798/http-timestamp-verisign-com-scripts-timstamp-dll-not-available)

Google翻訳すると、timstamp.dllはEOL(サポート終了)ってことですね。
>http://timestamp.verisign.com/scripts/timstamp.dllはここ数年で衰退し、一種の減価償却状態で働いていましたが、証明書発行ビジネスの新しい所有者であるDigiCertは移行を発行しました アラート。
>
>2019年のバックエンドの時点で、彼らは正式に古いサービスをEOLに入れました。

# 対応
下記サイトで移行先を提示されています。
[Migration of Legacy VeriSign and Symantec Time Stamping Services](https://knowledge.digicert.com/alerts/migration-of-legacy-verisign-and-symantec-time-stamping-services.html)

|TSA Type|Current TSA in use|Future TSA in use|
|:--|:--|:--|
|Authenticode|timestamp.verisign.com/scripts/timstamp.dll|timestamp.digicert.com?alg=sha1|
|RFC 3161 sha1|sha1timestamp.ws.symantec.com/sha1/timestamp|timestamp.digicert.com?alg=sha1|
|RFC 3161 sha256|sha256timestamp.ws.symantec.com/sha256/timestamp|timestamp.digicert.com?alg=sha256|

```bat
echo セットアップのデジタル署名付与
delcert.exe setup.exe
signtool.exe sign /fd sha256 -f test.pfx -tr http://timestamp.digicert.com?alg=sha256 setup.exe
```

## 他参照
* [installer - http - //timestampverisigncom/scripts/timstampdllは利用できません](https://tutorialmore.com/questions-230266.htm)
* [Signtoolでの署名方法 - digicert knowledge](https://knowledge.digicert.com/ja/jp/solution/SO23053.html)
* [[デジタル署名]2016年以降のハッシュアルゴリズムSHA-1廃止について](https://qiita.com/yaju/items/b9b5f06d875d7ef52a9e)

# 最後に
先月は問題なく動作していてバッチも修正していないのに、エラーは発生するとビビりますね。
何もしていなくても時間だけは常に進んでいくわけです。[ぺこぱ](http://www.sunmusic.org/profile/pekopa.html)の漫才のように「時を戻そう」とはいかないのねん。