1: 2024-03-06 (水) 14:48:45 yuji ソース 現: 2024-03-20 (水) 13:13:40 yuji ソース
Line 71: Line 71:
** pfxファイルを作成する [#x839bf81] ** pfxファイルを作成する [#x839bf81]
秘密鍵と自己電子証明書(公開鍵と署名)から,''pfxファイル(個人情報交換ファイル)''を作成する。~ 秘密鍵と自己電子証明書(公開鍵と署名)から,''pfxファイル(個人情報交換ファイル)''を作成する。~
-pfxファイルは,秘密鍵と対応するX.509形式の電子証明書をセットにしたファイルで,Microsoft製品で電子証明書の登録時によく使われているファイル形式。~+pfxファイルは秘密鍵と対応するX.509形式の電子証明書(公開鍵と署名)をセットにしたファイルで,Microsoft製品で電子証明書の登録時やデジタル署名をする時なんかによく使われているファイル形式。~
-.pfxファイルは以下のようにして作成できる。~+pfxファイルは以下のようにして作成できる。~
 > openssl pkcs12 -export -inkey OreOrePrivate.key -in OreOreCertificate.cer -out OreOreCertificate.pfx  > openssl pkcs12 -export -inkey OreOrePrivate.key -in OreOreCertificate.cer -out OreOreCertificate.pfx
-Windowsマシンの場合,作成された.pfxファイルを用いたり,証明書ストアに登録したりして,アプリケーション等にデジタル署名を追加することが出来るようになる。~+Windowsマシンの場合,作成されたpfxファイルを用いたり,証明書ストアに登録したりして,アプリケーション等にデジタル署名を追加することが出来るようになる。~
* Microsoftのコマンドを使用して自己電子証明書を作成する [#h51d8c2a] * Microsoftのコマンドを使用して自己電子証明書を作成する [#h51d8c2a]
Line 82: Line 82:
- 自己電子証明書と秘密鍵を作成する。~ - 自己電子証明書と秘密鍵を作成する。~
これは,makecertコマンドを使用する。~ これは,makecertコマンドを使用する。~
-- 電子証明書と秘密鍵を使って個人情報交換(PFX)ファイルに変換する。~+- 自己電子証明書と秘密鍵を使って個人情報交換(PFX)ファイルに変換する。~
これは,pvk2pfxコマンドを使用する。~ これは,pvk2pfxコマンドを使用する。~
Line 88: Line 88:
makecertコマンドを使用して,独自の電子証明書と秘密鍵を作成する。~ makecertコマンドを使用して,独自の電子証明書と秘密鍵を作成する。~
-コマンドの使い方は以下の様になっている。作成する証明書ファイル名(拡張子はcer)を指定する。~+makecertコマンドの使い方は,以下の様になっている。作成する電子証明書ファイル名(拡張子はcer)を指定する。~
 > makecert -r -sv <name-of-private-key-file>.pvk -n "CN=<developer-name>" <name-of-certificate-file>.cer -b <start-data> -e <end-date>  > makecert -r -sv <name-of-private-key-file>.pvk -n "CN=<developer-name>" <name-of-certificate-file>.cer -b <start-data> -e <end-date>
 +:-aオプション|署名に使用するダイジェストアルゴリズムを指定する。~
 +md5, sha1(デフォルト), sha256, sha512が指定できる。~
 +古いバージョンのmakecertだと,sha256やsha512は使えない。~
:-rオプション|自己署名ルート証明書を作成したい場合指定する。~ :-rオプション|自己署名ルート証明書を作成したい場合指定する。~
:-svオプション|作成する秘密鍵ファイル名(拡張子pvk)を指定する。~ :-svオプション|作成する秘密鍵ファイル名(拡張子pvk)を指定する。~
:-nオプション|証明書の名前を指定する。~ :-nオプション|証明書の名前を指定する。~
名前はX.509に準拠する必要がある。簡単にする場合"CN=MyName"を使用する。~ 名前はX.509に準拠する必要がある。簡単にする場合"CN=MyName"を使用する。~
-:-ssオプション|証明書ストア名を指定する。+CN=コモン名,O=組織の名前,C=国~ 
-作成された証明書を保存する証明書ストアの名前を指定する。~+例:-n "CN=MyName,O=MyAddress,C=JP"~ 
 +:-ssオプション|作成された電子証明書が登録されるする証明書ストアの名前を指定する。~ 
 +:-peオプション|秘密鍵をエクスポート可能にする。~ 
 +電子証明書に秘密鍵組み込む時に指定する。証明書ストアに登録してデジタル署名をする場合には必要。~ 
 +:-equオプション|証明書の拡張キーを設定する。~ 
 +コード署名: "1.3.6.1.5.5.7.3.3"~ 
 +ライフタイム署名: "1.3.6.1.4.1.311.10.3.13"
 +コード署名とライフタイム署名の両方: "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13"~
:-bオプション|証明書の有効期限の開始日を指定する。~ :-bオプション|証明書の有効期限の開始日を指定する。~
-形式は,mm/dd/yyyyになっている。~ +形式は,mm/dd/yyyyになっている。指定しない場合は,作成日になる。~
-指定しない場合は作成日になる。~+
:-eオプション|証明書の有効期限の終了日を指定する。~ :-eオプション|証明書の有効期限の終了日を指定する。~
-形式は,mm/dd/yyyyになっている。 +形式は,mm/dd/yyyyになっている。指定しない場合は,デフォルト終了日:2039/12/31になる。~
-指定しない場合は,デフォルト終了日は2039/12/31になる。~+
以下のようにして自己電子証明書と秘密鍵を作成した。~ 以下のようにして自己電子証明書と秘密鍵を作成した。~
Line 113: Line 121:
** pfxファイルを作成する [#ladf2460] ** pfxファイルを作成する [#ladf2460]
-pvk2pfxコマンド使用して,自己電子証明書と秘密鍵を合成して.pfx(個人情報交換)ファイルを作成する。~+pvk2pfxコマンド使用して,自己電子証明書と秘密鍵を合成してpfx(個人情報交換)ファイルを作成する。~
この変換する時に,秘密鍵OreOreCertificate.pvkと自己電子証明書OreOreCertificate.cer,秘密鍵を暗号化した時のパスワードが必要となる。~ この変換する時に,秘密鍵OreOreCertificate.pvkと自己電子証明書OreOreCertificate.cer,秘密鍵を暗号化した時のパスワードが必要となる。~
コマンドの使い方は以下のようになっている。~ コマンドの使い方は以下のようになっている。~
 > pvk2pfx -pvk <name-of-private-key-file>.pvk -pi <password-for-pvk> -spc <name-of-certification-file-name>.cer -pfx <name-of-pfx-file> -po <password-for-pfx>  > pvk2pfx -pvk <name-of-private-key-file>.pvk -pi <password-for-pvk> -spc <name-of-certification-file-name>.cer -pfx <name-of-pfx-file> -po <password-for-pfx>
 +
 +:-pvkオプション|秘密鍵ファイル名(拡張子pvk)を指定する。~
 +:-piオプション |秘密鍵のパスワードを指定する。~
 +:-spcオプション|電子証明書ファイルを指定する。~
 +:-pfxオプション|出力するpfxファイル名を指定する。~
 +:-poオプション |pfxファイルのパスワードを指定する。~
以下のようにしてpfxファイルに変換した。~ 以下のようにしてpfxファイルに変換した。~
Line 127: Line 141:
* Windowsの証明書ストアに電子証明書を登録する [#ifddd68f] * Windowsの証明書ストアに電子証明書を登録する [#ifddd68f]
-''pfxファイル''が作成できたら,その電子証明書をWindowsの証明書ストアに登録する。~+''pfxファイル''が作成できたら,そのファイルを使って電子証明書をWindowsの証明書ストアに登録する。~
-証明書ストアに登録する理由は,アプリケーションにデジタル署名を追加する場合,Windowsでは電子証明書を参照するデフォルト場所として証明書ストアを使用しているから。~+証明書ストアに登録する理由は,アプリケーション等にデジタル署名を追加する場合,Windowsでは電子証明書を参照するデフォルト場所として証明書ストアを使用しているから。~
また,署名用証明書を証明書ストア登録しておくと,デジタル署名を検証する場合にも使用される。~ また,署名用証明書を証明書ストア登録しておくと,デジタル署名を検証する場合にも使用される。~
-証明書ストアに電子証明書を登録するには,証明書マネージャ(CertMgr.msc)を実行するか,certutilsコマンドで行う。~+証明書ストアに電子証明書を登録するには,証明書マネージャ(CertMgr.msc)を使用するか,certutilsコマンドで行う。~
証明書マネージャ(CertMgr.msc)で登録する場合は以下のようにする。~ 証明書マネージャ(CertMgr.msc)で登録する場合は以下のようにする。~
Line 157: Line 171:
これで作成した自己電子証明書を証明書ストアの「個人」へ,署名証明書を「信頼されたルート証明機関」に登録された。~ これで作成した自己電子証明書を証明書ストアの「個人」へ,署名証明書を「信頼されたルート証明機関」に登録された。~
 +
 +* 自己電子証明書で実行ファイルにデジタル署名する [#hf364b84]
 +実行ファイルに自己証明書を使って,Windowsの実行ファイルにデジタル署名を追加してみる。~
 +ここでは,Microsoftのsigntoolコマンドを使用してみる。~
 +
 +コマンドの使い方は以下のようになっている。~
 + > signtool -fd sha256 -f <name-of-pfx-file>.pvk -p <password-for-pfx> -t <timestamp-server> execute-command
 +
 +:-fdオプション |ファイル署名に使用するアルゴリズムを指定する。~
 +:-fオプション  |pfxファイルを指定する。~
 +:-pオプション  |pfxファイルのパスワードを指定する。~
 +:-tオプション  |タイムスタンプサーバーのURLを指定する。~
 +
 +以下のようにしてさsample.exeにデジタル署名してみた。~
 + > signtool sign -fd sha256 -f OreOreCertificate.pfx /p xxxxxxxxxxx /t http://timestamp.digicert.com sample.exe
* 自己電子証明書でPDFファイルにデジタル署名する [#n419b266] * 自己電子証明書でPDFファイルにデジタル署名する [#n419b266]
Line 177: Line 206:
* 電子証明書をエクスポートして署名した文書と一緒に配布する [#l11089ab] * 電子証明書をエクスポートして署名した文書と一緒に配布する [#l11089ab]
-自己電子証明書を使ってデジタル署名したPDF文書を相手に渡す時には,そのデジタル署名を検証するときには自己署名証明書を一緒に渡す必要がある。~+自己電子証明書を使ってデジタル署名したPDF文書ファイルを相手に渡す時に,そのデジタル署名を検証する目的で自己署名証明書を同時に渡す必要がある。~
この自己署名証明書としては自己電子証明書を作成した時に作成された署名用証明書''OreOreCertificate.cer''をそのまま使用できる。~ この自己署名証明書としては自己電子証明書を作成した時に作成された署名用証明書''OreOreCertificate.cer''をそのまま使用できる。~


トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 57, today: 2, yesterday: 1