- セクティゴ・コモドSSLトップ
- > サポート
サポート
◆ こちらからサポート記事を検索いただけます
署名方法について (コード証明書関連)
コモドのコード証明書は一つで様々なOSのアプリに対応
ソフトウェア・アプリ制作者様は自身のプログラムに署名を行う事によりプロフェッショナルな制作物として利用ユーザーに提供をすることが出来ます。
コモドのコード証明書を購入することでウインドウズ形式の実行ファイル(.exe、.cab、.dll、.ocxなど)Silverlight やPowerShell、Java形式のアプレット(.jar ファイル)アンドロイドアプリ形式の(.apk ファイル)
そしてマッキントッシュ形式(.app ファイル)Adobe AIRにも署名することができます。
自身のプログラムコードに署名をすることにより、ユーザに配布ソフトウェアの確実性を目に見える形で提供・保証することができ、プログラムファイルの完全性を提供することができます。
本説明ページでは購入・インストール方法ではなくそれぞれ(windows java Mac)上での署名実行方法をご説明させていただきます。
コード証明書をご取得後に2つのファイルがお手元にあるものとします。秘密鍵 (.pvk) 及び PKCS #7形式の証明書ファイル(.spc)です。これらを PKCS #12形式 (.pfx) のファイルとしてバックアップします。弊社コード証明書を取得した時点で秘密鍵 .pvk 及び証明書 .spc ファイルはブラウザ経由でお客様のPCに自動生成されています。
必要なツール等
.pvk およびand .spc ファイルをつかい .jars や .exes , .appsに署名するツールやその手法は様々ございます。今回は下記の表にて今回使用するツールをリストアップいたします。
詳細につきましては下段のリファレンスより適宣ご入手ください。
ツール名 | 説明 | ツールの提供元 | 所在 |
pvk2pfx | 秘密鍵.pvk と 証明書.spc から .pfxファイルを生成。 | Microsoft SDK | |
signtool | 実行ファイル .exe等を署名するツール | Microsoft SDK | |
keytool | Java キーストアの作成・管理ツール | Oracle Java SDK | |
pkcs12import | .pfx をJava キーストアにインポートするツール | Java Web Services Developer Pack | Sun/jwskp-2.0/xws-security/bin |
jarsigner | .jar .apk ファイルの署名ツール | Oracle Java SDK | |
Keychain Access | Mac上でのキーチェーンを管理するアプリツール | Mac OS/X | /Applications/Utilities |
codesign | Mac上での.app ファイルを署名するツール | Mac OS/X |
/usr/bin/codesign |
PVK と SPC より PFXを作成
利用可能な署名ツールは数多く存在します(文末参照)がそれらに共通して必要な形式は.pfx(PKCS #12形式)のファイルを必要とします。
まず最初にお手元の.pvkと.spcファイルから.pfxファイルを作成してください。
マイクロソフトSDK(開発キット)では、この変換機能を有するpvk2pfxツールが同梱されています。(マイクロソフト公式ドキュメント参照)
pvk2pfx /pvk pvkファイル名.pvk [/pi pvkパスワード] /spc spcファイル名.ext [/pfx pfxファイル名.pfx [/po pfxパスワード] [/f]]
実行例:
pvk2pfx -pvk mypvkファイル.pvk -pi mypvkパスワード -spc myspcファイル.spc -pfx mypfxファイル.pfx -po mypfxパスワード -f
このコマンドは.pvkファイルと.spcファイルで、パスワード付きの.pfxを作成します。(注:.pfxパスワードは任意で.pvkパスワードと同一に設定することができます)。
ファイルの署名は (windows上のみで実行可能です)
.pfxファイルがあればすぐにでもWindowsプログラムコード(例 .exeファイル)に署名することができます。(いくつかはGUIでの操作が可能ですが)基本的操作方法はマイクロソフトSDKからsigntool.exe を使用します。たとえば次のように実行します。:
signtool [コマンド] [オプション] [ファイル名 | ...]
実行例:
signtool sign /f mypfxファイル.pfx /p mypfxパスワード /d "My Description" /t http://timestamp.comodoca.com/authenticode myWindowsファイル.exe
このコマンドでは、コモドにより提供されるタイムスタンプサーバを指定し 「myWindowsファイル.exe 」とタイムスタンプに署名を実行します。
プロパティ ${microsoftSDK} は次のように定義します。
ビルドファイルおよび.pfx と .exe は同一のパスに存在している事をご確認ください。
Java キーストアKeystore
Java形式の .jarファイルに署名するには、少しの事前準備が必要です。Java形式の.jarファイルは、keystoreに含まれるキーを使って署名されます。Java キーストアは一組のキーを含むファイルのため、証明書を既存のkeystoreにインポートするもしくは、新しくkeystoreを作成する等が必要となります。
ここでは新たに.jarファイルに署名することを想定し新しくkeystoreを作成する手順をご説明いたします。
Java SDK(開発キット)では、keystoresを管理する機能を提供する「keytool.exe」と呼ばれているユーティリティを提供します。
残念ながら、作成時には空のキーストアを作成することはできません。
初回作成時にはキーを提供する必要がありますのではじめてキーストアを作成する場合には一時的に自己認証鍵で実行してください。後で一時利用の鍵を削除することで、下記の手順でkeystoreを作成してください。:
keytool.exe -genkey -alias temp -keyalg RSA -keysize 2048 -dname "CN=et,OU=ET,O=ET,L=Vancouver,S=BC,C=CA" -keypass temporary -keystore mykeystore.keystore -storepass mykeystoreパスワード
このコマンドは仮領域(temp)で秘密鍵と仮のパスワード「mykeystoreパスワード」をつかい 「mykeystore.keystore」という名前でキーストアを作成します。
次のコマンドで、仮領域(temp)の秘密鍵はキーストアから削除され、お手元の証明書キーを使用するためにkeystoreを空にしておきます。
keytool.exe -delete -alias temp -keystore mykeystore.keystore -storepass mykeystoreパスワード
Java キーストアに証明書を追加する方法
空のJava keystoreができましたら次に、コード証明書をそれにインポートしてください。pkcs12importを使用して実行できます。このコマンドユーティリティはJava Web Services Developer Packの一部として提供されています。
コマンドは以下のように実行してください:
pkcs12import -file mypfxファイル.pfx -pass mypfxパスワード -keystore mykeystore.keystore -storepass mykeystoreパスワード -keypass mypfxパスワード -alias mykeyalias
このコマンドはmypfxファイル.pfxをキーストアにインポートしパスワード「mypfxパスワード」で安全に保護しています。(本手順の場合、分かりやすくに、 .pfxの元々と同じパスワードを使用していますが適宣ご希望のパスワードをご指定ください。).
.jar ファイルへの署名方法
証明書はkeystoreインポートされた段階で、遂に.jarファイルに署名を実行します。
Java SDKにはjarsignerが含まれてますので、これを実行します:
jarsigner -keystore mykeystore.keystore -storepass mykeystoreパスワード -keypass mypfxパスワード myJar.jar mykeyalias
このコマンドを実行することで jar ファイル「myJar.jar」を
秘密鍵エイリアスmykeyaliasとキーストア( mykeystore.keystore )内に含まれるパスワード( mypfxパスワード )で署名します。
次のようにant ビルドスクリプトから実行することができます。:
この段階で Mac OS/X 開発ツールからcodesign コマンドを使いお手元の.app ファイルを署名することができます。
アンドロイドアプリ(.apk) ファイルへの署名方法
上述同様にkeytoolで証明書(mykeystore.keystore)を使用しアンドロイド用アプリapkファイルに署名するにはjarsignerを使用します。
jarsigner -verbose -keystore [証明書ファイル] [署名するandroidアプリパッケージ] [秘密鍵エイリアス]
実行例、d:\tmpディレクトリにあるmykeystore.keystoreファイル証明書を使用してd:\tmpディレクトリにあるアプリtestapp.apkに署名をつけています。(秘密鍵エイリアスmykeyalias)
jarsigner -verbose -keystore d:\tm\mykeystore.keystore d:\tm\testapp.apk mykeyalias
コマンドを実行すると証明書を作成した時に設定したキーストアパスワードを要求されるので入力します。
jarsignerコマンドでアプリ(.apkファイル)についている署名の検証ができます。
jarsigner -verify -verbose -certs testapp.apk
Macシステム上でプログラムに署名するには、お手元のコード証明書をMac keychainにインポートする必要がございます。MacのキーチェーンはJava keystoreでの作業と同様です。; さまざまな証明書、パスワード、他の情報のを保護するリポジトリです。 マック上でコード証明書をキーチェーンにインポートする最も簡単な方法は.pfxファイルをダブルクリックするだけで自動的にユーザの既定キーチェーンにインポートされます (注意:インポート時には.pfxファイルのパスワードが聞かれますそれを入力すると Keychain アクセスアプリケーションにインポートできます。)
この段階で Mac OS/X 開発ツールからcodesign コマンドを使いお手元の.app ファイルを署名することができます。 このコマンドの一般的な実行例は以下の通りです。
codesign -s identity [-f] [パス ...]
identityはKeychain Access アプリ上のコード証明書に記載の名前(一般名)
実行例:
codesign -s "My Name" -f myApp.app
既定のキーチェーンで指定された名前My Nameにてコード証明書を使いアプリケーションバンドル内の myApp.app を署名することができます。
次のようにant ビルドスクリプトから実行することができます。:
フロー図
以下は.exe, .jar and .appを署名するための動作をまとめたフロー図
リファレンス
Microsoft Windows SDK: (Microsoft Windows 開発ツール)
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b&displaylang=en
Oracle Java SDK: (Java 開発ツール)
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Java Web Services Developer Pack: (Java web services 開発ツール)
http://www.oracle.com/technetwork/java/index-jsp-136025.html
Apache Ant: (ソフトウェアビルドツール)
http://ant.apache.org/
SignGUI: (Microsofts 署名ツールをGUI操作するフロントエンド)
http://www.briggsoft.com/signgui.htm
TechPro CodeSign: (Microsoftコマンドライン署名ツール用のGUIシェル )
http://www.tech-pro.net/codesign.html
Portecle: (Java キーストアを作成・管理・テストするためのGUIアプリ )
http://portecle.sourceforge.net/
インストール関連 |
署名方法について |
トラブルシューティング |
その他 |
マニュアル
各種手続きについて
- 古いSHA1ルート終了における対応につきまして。
- 新ドメイン認証レベルで確認させていただく内容
- オンラインDBへの電話番号確認
- DUNSの新規登録申請はオンラインで簡単
- ドメイン認証レベルで確認させていただく内容
- 企業認証レベルで確認させていただく内容
- 認証レベルに応じた確認・必要書類はなんですか
- 申請ドメインの登録状態を確認しよう :whoisチェック
- 企業情報(登録確認)にはどのような媒体がありますか?
- 無償版SSLとは
- 申請までにご準備いただく物
- お申込みから納品までの流れ
- 費用の支払方法
- お見積書発行依頼
- 請求書の発行依頼
- 更新の申請方法
- 販売パートナ・アフェリエイトパートナーになる。
- ID/パスワードを忘れたら
購入前のご質問
- 新 補償とは一体どういう意味でしょうか?
- FileMaker(ファイルメーカー)製品対応SSLについて
- 携帯電話、スマートフォン、タブレット対応状況
- 新旧ドメイン認証タイプの比較
- 携帯電話・スマートフォン対応状況(ユニファイドコミュニケーション)
- ドメイン管理状況の認証 (DCV) を実施
- ブラウザーの互換性
- マルチドメインは何個まで追加できますか
- 追加ドメインの購入はどのように申請するのでしょうか?
- IEの設定の「信頼されたルート証明期間」のなかでどのように表示されますか?
- コードサイニング証明書とはなんですか?
- ユニファイドコミュニケーションとはなんですか?
- どのようにすればSSLをテストできるでしょうか?
- コモドのSSL証明書は顧客のブラウザーで正しく動作するでしょうか?
- 補償とは一体どういう意味でしょうか?
- コモドのSSLはどのバージョンのSSLプロトコルと互換性がありますか?
- SGCとは何でしょうか?
- お申込フォームで間違った申請をしてしまいました。
- コモドのSSLはどのバージョンのSSLプロトコルと互換性がありますか?