「オレオレ証明書」を生成してローカルコンピューターにインストールする
PowerShellの「New-SelfSignedCertificate」コマンドレットを使って、「オレオレ証明書」を生成してローカルコンピューターにインストールします。
詳細は、docs.microsoft.comの「パッケージ署名用証明書を作成する」をご覧ください。管理者権限でPowerShellプロンプトを開き、次のようにコマンドを入力して実行します。
New-SelfSignedCertificate -Type Custom -Subject "{発行者名}" -KeyUsage DigitalSignature -FriendlyName "{フレンドリー名}" -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}")
ここで、{発行者名}は「CN=…」という形式です。そして、{フレンドリー名}は任意の文字列。いずれも、テスト用ですから適当でかまいません。ここに入れた文字列がどのように使われるかは、この後の例を見てください。このコマンドを実行することで、「オレオレ証明書」が生成され、ローカルコンピューターの証明書ストアに格納されます。ファイルとしては出力されません。コマンドの実行結果は、次の画像のようになります。
上の例では、{発行者名}は「CN=BluewaterSoft.TestProject」、{フレンドリー名}は「biac」としています。
「オレオレ証明書」を確認する
証明書マネージャー管理スナップインを使って、インストールされているデジタル証明書を確認できます。[ファイルを指定して実行]でcertmgr.mscと入力して実行すると証明書マネージャーが開きます。その左側で[個人]-[証明書]を選ぶと、右側にさきほど生成した「オレオレ証明書」が見つかるはずです(次の画像)。
説明した方法で生成した「オレオレ証明書」の有効期限は1年間になっています。上の画像では右側に「オレオレ証明書」が3つ見えています。一番上のは、既存のもの。一番下は、同様にしてもう1つ追加したものです。下の2つの[目的]欄に[コード署名]とあるのを、ちょっと覚えておいてください。
「オレオレ証明書」をパッケージマニフェストに追加する
Visual Studio 2019(v16.2以降)でパッケージマニフェストを開き、[証明書の選択]ボタンをクリックします。出てきた[証明書の選択]ダイアログで、また[証明書の選択]ボタンをクリックします(次の画像)。
すると、次の画像のような[証明書の選択]ダイアログが出てきます。左下の[その他]リンクをクリックすると、利用可能なコード署名用の証明書が一覧されるので、その中から署名に使いたい証明書を選びます。この画像で、先ほど証明書マネージャーで見ていたコード署名用の証明書だけが表示されているのが分かるかと思います。
上のダイアログに「オレオレ証明書」を生成したときの{発行者名}(=「CN=BluewaterSoft.TestProject」)と{フレンドリー名}(=「biac」)が表示されています。選んでからダイアログを閉じてパッケージマニフェストの画面に戻ると、証明書の[発行者]欄が選択した証明書のものになっています(次の画像)。
これで完了です。オリジナルのソースコードに含まれているTemporaryKey.pfxファイルはもう不要なので、削除してしまってかまいません。
ソースコードを準備する
それでは、ソースコードを取ってきて、ビルドしてちゃんと動くことを確認しましょう。詳細は前回をご覧ください。前回を書く時には気付かなかったのですが、Visual Studio 2019をインストールした直後に「電卓」アプリをビルドした場合は、必要になるライブラリーなどを大量にダウンロードするため非常に時間が掛かります。最初のビルドは気長に待ってください。
また、最近の公開されているソースでは、通貨コンバーターで利用する為替レートのWebサービス定義がダミーのものに差し替えられています(DataLoaderMockConstants.h)。そのため、実行すると次の画像のように「異世界の通貨」が表示されてしまいます。気になる人は、GitHubで以前のソースを探して定義を書き換えてください(以前はCurrencyHttpClient.cppに定義されていました)。なお、「電卓」アプリは取得した為替レートをキャッシュしていますので、定義を変えてビルドした後は[為替レートの更新]リンク(下の画像に見えています)をクリックして為替レートを取得し直してください。
