一年を過ぎるとClickOnceで配布した
プログラムが起動しない
Visual Basic 2005 Express Edition SP1
Windows XP SP2
2006/6/10
作成したアプリケーションをClickOnceで配布しておけば、クライアント側で配布元を確認して必要に応じて更新する為、極めて便利である。これにより、配布先を管理して更新があるたびにインストールのお願いをする必要が無くなる。また、ASPやJAVAといった多少貧弱なソリューションに頼らなくて済む。
デフォルトのプロジェクトで生成されるテスト証明書は期限が1年だったりする。期限が切れると、新しい証明書をつけて再ビルドして、全端末に対して再インストールする必要がある。これを一年毎に繰り返さjなければならない。それを避けるには、期限が長めの証明書を作っておくのが手っ取り早い。
社内で認証局が統一管理されていれば、証明書の発行は問題の無い日常業務だろう。そうでないなら、独自の認証局を立てるか、プライベートな証明書を作るしかない。
2040年まで使えるプライベート証明書の作り方は、下記の通り。
厳密に言うと、.Net Framework環境が想定しない重大なセキュリティーホールを作る、好ましくない解決方法です。何があっても責任持てません。少なくとも、外部から隔絶された社内ネットワークなどでのみ使ってください。
1.ルート証明書の作成
makecert -n CN=test -sv c:\test.pvk -r c:\test.cer
※makecert.exeはOfficeがインストールされたPCでファイル名検索をすると見つかります。
※パスワードの入力が必要です。2.で使います
※本来はこのルート証明書をベースにデジタル署名を作成すべきですが、ここではそのまま使います。
参考:http://www.ki.rim.or.jp/~kuro/ActiveX/CabAndSign/MakeCert.html
2.証明書のインポート
a)pvkimprt.exe をマイクロソフトからダウンロードする。
マイクロソフトのサイトで検索してください。
b)インポートする
pvkinprt -PFX test.cer test.pvk
秘密キーをエクスポートしてください。
出力ファイル形式は Personal Information Exchange - PKCS #12 (PFX) です。
test.pfx というファイルが作成されます。
このファイルをフォームなどがあるプロジェクトのディレクトリへ移動して ください。
※途中、1.で入力したパスワードが必要です。
参考: http://www.atmarkit.co.jp/fdotnet/clickonce/clickonce07/clickonce07_03.html
3.VBプロジェクトの設定
プロジェクトを開きます。「署名」のシートを選択します。「ファイルから選択」を指定して、2.で作ったpfxファイルを指定します。
作業が終わったら、pfxファイル以外は削除しましょう。また、証明書管理の社内スキームができあがったら、再ビルドして再インストールをしましょう。
コメントがあればブログへ