Visual Studioで証明書を署名する方法。エラー:信頼性の高い発行元からのプロジェクトのみを開くようにしてください。

プログラミング
スポンサーリンク

Visual Studioで以下のエラーが発生しました。

「信頼性の高い発行元からのプロジェクトのみを開くようにしてください。」

 

この解決方法として、コード証明書を使った署名方法をまとめました。

コード証明書とSSL証明書 (https) は違うことに注意してください。

スポンサーリンク

信頼性の高い発行元からのプロジェクトのみを開くようにしてください

Visual Studioで他人からソリューションファイルを送ってもらって、プロジェクトを開こうとしたら以下のメッセージが表示されました。

 

信頼性の高い発行元からのプロジェクトのみを開くようにしてください。

プロジェクトファイル xxxx は、完全に信頼された発行元からのファイルではない可能性がありま

す。Microsoft Visual Studioで開いて、カスタムビルドステップを実行すると、セキュリティ上の危険を引き

起こすおそれがあります。このプロジェクトが信頼されない発行元から提供されている場合、お使いのコンピュ

ーターが破損したり、個人情報が侵害されたりする原因になることがあります。

 

image

 

 

ちょっとドッキリしますね。

 

ただ、信頼できる相手からのプロジェクトファイルなら、このまま開いて問題ありません。

 

一度、ソリューションファイルを開くと、.suoというソリューションユーザーオプションファイルが上書きされるために、二度とこのエラーは表示されません。

 

 

ただ、ネット上に誰でもダウンロードできるVisual Studioのソリューションファイルを開いたときに、このメッセージが表示された場合、安易にソリューションファイルを開かない方がよいでしょう。

 

コード証明書(Code Signing Certificates)の購入: 信頼性の高い発行元となる

そもそも「信頼性の高い発行元」というエラーを出さないようにするためには、プロジェクトにコード証明書を入れておく必要があります。

 

コード証明書の入手先として、シマンテック・ベリサインなどが有名ですが、基本的にどこから購入しても問題ありません。

 

 

また、

コード証明書とSSLの証明書は違うものなので、購入するときに間違えないように注意しましょう。

コード証明書はVisual Studioのプロジェクトファイルや実行プログラム (exe) に適用します。

 

一方、SSL証明書は、ApaheやnginxなどのWEBサーバーで設定します。

SSL証明書を設定すると、https:// でエラーなく表示されるようになります。

 

 

以下は、シマンテック・ベリサインのWEBサイトの例です。

http://www.symantec.com/ja/jp/code-signing/

 

image

 

Code Signing Certificates for Microsoft Authenticode を選択して購入します。

 

 

ちなみに、シマンテック・ベリサインのコード証明書の価格は他社と比べて少し高いです。

 

1年間で9万円で毎年、更新が必要になります。

 

http://www.symantec.com/ja/jp/page.jsp?id=pricelist/code-signing

 

image

 

 

そこで、比較的安めのコード証明書を日本語で売っているところを探してみました。

 

 

株式会社コモドジャパン

コード証明書 | SECTIGO JAPAN (旧 COMODO JAPAN)
SSL(Secure Sockets Layer)とTLS(Transport Layer Security)は、いずれもインターネット上でデータを暗号化して送受信する仕組み(プロトコル)です。セクティゴジャパン(旧コモドジャパン)では、WebサーバーとWebブラウザーとの間に暗号化し送受信できるEV・コードサイン・S...

ここなら、1年間で21,000円です。

 

 

ちなみに、個人的な感想ですが、コード証明書にしろSSLの証明書にしろ、どこで買っても大した差はありません。

 

価格の違いは、単にブランド力の違いです。

 

誤解を恐れずに例えれば、ある目的地に行くのに、ベンツで行くか、軽自動車で行くかの違いぐらいです(まぁこの場合、乗り心地が違うとかいろいろと他にも違いがあるので、よい例えになっていないかもしれません)。

 

コード証明書で署名したファイルのプロパティを敢えて開いてみて、ベリサインで署名されていると少し気持ちいいかな、ぐらいです。

あるいは、客先が署名を見てちょっと安心することがあるぐらいです。

 

説明がちょっとわかりにくかったですが、コード証明書を購入する際に購入先、価格に悩んだら、ほんのちょっとだけ、この意見を参考にしてください。

どこで買うかは本人次第です。

 

コード証明書を使って署名する方法

Visual Studioでコード証明書で署名するには、Visual Studioでプロジェクトを選択し、

マウスの右クリック⇒プロパティ

を開きます。

 

image

 

「署名」を選択し、「アセンブリに署名する(A)」にチェックを入れて、キーファイルを選択します。

 

SignToolでexeファイルやdllに署名

Visual Studioのプロジェクト以外に実行ファイルなどに署名をすることも出来ます。

 

この場合、Visual Studioに付属のSignTool.exeというコマンドを使います。

 

Visual Studioのコマンドプロンプトを開いて、コマンドラインから

「SignTool」を実行するとSignToolが起動します。

 

 

 

GW-02705

 

SignToolの使い方については、以下に詳しく記載されていました。

 

SignTool.exe (署名ツール) - .NET Framework
SignTool.exe (署名ツール) について説明します。 このコマンド ライン ツールによって、ファイルにデジタル署名を添付し、ファイルの署名を検証し、ファイルにタイムスタンプを適用することができます。

 

SignToolはコマンドラインでしか使えないようです。

 

以前は、

$ signtool signwizard

とするとGUIが起動したのですが、新しいVisual Studio 2012ではなくなっているようです。

 

SignTool Error: Invalid command: signwizard

と表示されました。

 

 

signtool.exe を使って、直接pfxファイルを指定して署名する場合は /f と /p オプションを使用します。

具体的には次の通りです。

 

Visual Studio .NETのソリューションファイルの種類と拡張子

 

ソリューションファイルには、.slnと.suoという二つのファイルがあります。

 

これらのファイルの意味は以下の通りです。

拡張子 名前 説明

.sln

Visual Studio ソリューション

プロジェクト、プロジェクト アイテム、およびソリューション アイテムをソリューションとしてまとめるため、ディスク上の各アイテムの場所への参照を開発環境に提供します。

.suo

ソリューション ユーザー オプション

ソリューションに関連付けられたオプションをすべて記録し、ソリューションを開くたびにカスタマイズ情報が組み込まれるようにします。

 

 

http://msdn.microsoft.com/ja-jp/library/aa293013%28v=vs.71%29.aspx

からの引用です。

 

.suo のファイルは、ユーザーオプションであるために配布する際に削除して構いません。

更に細かく言うと、配布時には、.aps、.dep、.idb、.ilk、.ncb、.obj、.pch、.pdb、.res、.suo、.user、BuildLog.htmといったファイルは削除して構いません。

 

プログラミングの無料レッスン体験

 

約8,000名の受講生と80社以上の導入実績のあるプログラミングやWebデザインのオンラインマンツーマンレッスンCodecamp

<Codecampの特徴>

1 現役エンジニアによる指導

2オンラインでのマンツーマン形式の講義

3大手企業にも導入されている実践的なカリキュラム

↓無料体験レッスン実施中です。

プログラミングのオンラインスクールCodeCamp

 

 

コメント

タイトルとURLをコピーしました