64 ビット版 Windows 7 で PDF に電子署名する

SOFTWARE REPORT


Windows 7 (x64) での電子署名について

Windows 7 (x64) にインストールした Adobe Acrobat 9.0 Standard で PDF ファイルに電子署名を行おうとしたところ、その環境を整えるのに時間がかかってしまいました。

電子署名に使った電子証明書は、公的個人認証サービス で取得可能な住基カードの電子証明書と、法務省 商業登記に基づく電子認証制度 で取得可能な 拡張子 p12 のファイルによる電子証明書の 2 つです。

これらについて、登記ねっと からダウンロードできる無料の PDF 署名プラグインソフトを利用して、電子署名を行える環境を整えた時のお話を記してみたいと思います。

 

公的個人認証サービスの電子証明書の場合

住民基本台帳カードの IC チップに保存される公的個人認証サービスの電子証明書の場合、IC カードリーダーを使用して署名するソフトウェアが必要になります。

その辺りについては、以前 Windows Vista (x64) の頃にも EZ-NET: Adobe Acrobat 9.0 に PDF 署名プラグインを追加してみる (公的個人認証用の IC カードを用いた署名を可能にする) で記したことがありましたけど、それからだいぶ時が経っているのもありますし、あらためて整理してみたいと思います。

 

まず、平成 23 年 4 月 22 日現在、Adobe Acrobat 9 を利用して電子署名を行うための PDF 署名プラグインが 登記ねっと からダウンロードできるようになっていました。

以前は、利用できるパソコン環境に細かい指定があったように思いますけど、今回はそういった特別な条件は記載されていないような感じです。

ここから "PDF 署名プラグイン" をダウンロードして、ダウンロードされた "SPDFG130.exe" を右クリックして【管理者として実行】を選択します。

後は手順に従ってインストールを進めて行くと、少しして "MistyGuard<SignedPDF>(署名機能限定版)" のインストールが完了しました。

ところでこの作業の中で、自分の環境だけなのか、Windows 7 (x64) 環境でセットアップを行っていたら、ひと通りのインストールが終わった頃合いに、インストーラーの背景だけが残ったまま、進捗を表示するダイアログが消えたまま 30 分以上も応答がなくなってしまいました。

結局、Windows 7 を再起動してみようとしたところ、"MistyGuard<SignedPDF>(署名機能限定版)" が原因でシャットダウンできないと言われたので、Windows に戻ってみたところ、完了画面が表示されてくれました。

 

公的個人認証サービスでの電子署名を行う場合、これと併せて "公的個人認証サービスクライアントソフト" の準備も必要となる様子です。

これを準備しておかないと、Windows 7 (x64) と Acrobat 9.0 Standard で "SignedPDF" での署名の際に、次のようなエラーメッセージが表示されてしまいました。

ロード情報定義ファイル(C:\Program Files\Common Files\e-gov_app\load_path\default.dat)がオープンできません。

C_GetFunctionList() of MPKCS11Wrap.dll failed.

ライブラリの読み込みに失敗しました。ライブラリが正しくセットアップされているか確認してください。Code=0x24000001

署名情報収集途中でエラーが発生しました。Code=0x2ffffffd

これを解消するために 公的個人認証サービス ポータルサイト で提供されている "利用者クライアントソフト" のインストールを行います。

平成 23 年 4 月 22 日現在、公的個人認証サービス利用者クライアントソフトは、Windows 7 の 64 ビット版に対応していると記されています。Windows Vista の頃には 32 ビット版にしか対応していなくて、以前に EZ-NET: Adobe Acrobat 9.0 に PDF 署名プラグインを追加してみる (公的個人認証用の IC カードを用いた署名を可能にする) に記したような若干の手間が必要でしたけど、Windows 7 の今回は、64 ビット環境でもそういった手間は必要なさそうです。

 

ダウンロードした "JPKIAppli02-04.exe" を実行して、"JPKI 利用者ソフト" のセットアップを手順通りにインストールを進めて行きます。

以前の Windows Vista (x64) の頃は、インストール先が "C:\Program Files (x86)\" だったがために、SignedPDF と上手く連携が取れないことがありましたけど、今回は "C:\Program Files\" がインストール先となっているようで、これなら確かに問題なさそうな感じがします。

ところでこちらもまた、自分の環境だけなのか、Windows 7 (x64) 環境でセットアップを行っていたら、ひと通りのインストールが終わった頃合いに、インストーラーの背景だけが残ったまま、進捗を表示するダイアログが消えたまま何分も応答がなくなってしまいました。

結局こちらも、Windows 7 を再起動させてみたところ、"JPKI 利用者ソフト" が原因でシャットダウンできないと言われたので、Windows に戻ってみたところ、少しして完了画面が表示されてくれました。

 

これで、公的個人認証サービスの電子証明書による電子署名の利用準備が整いました。

実際にこれで電子署名を試してみると、IC カード(住基カード)から電子署名を行うことができました。署名の最後に "この製品では、検証はできません。Code=0x3f100001" というダイアログメッセージが表示されますが、これは単に、電子署名に使用した "SignedPDF" が検証機能を省いたものであるためで、電子署名は正しく実施されています。

 

商業登記に基づく電子認証制度の電子証明書の場合

商業登記に基づく電子認証制度の場合、電子証明書は "p12" という拡張子のファイルで提供されます。

これを 登記ねっと からダウンロードした PDF 署名プラグインを使用して署名する場合、"SignedPDF" の環境設定から、利用する電子証明書を "公的個人認証 IC カード" から "証明書ストア" に切り替える必要があります。

ただ、この方法を Windows 7 (x64) で試してみた限りでは、管理者権限で Acrobat 9 Standard を立ち上げないと、環境設定はおろか電子署名の実施についてもエラーとなってしまうようでした。

複数の電子署名を行う場合には、その都度、SignedPDF の環境設定で、印影画像と電子署名とを切り替えなくてはならなかったり、そもそも証明書ストアに各人の電子証明書を登録してしまうと、証明書ストアに設定されている同じパスワードでそれらの電子署名が行えてしまうなど、使い勝手はあまりよくないようにも思います。

 

"SignedPDF" の環境設定は、Adobe Acrobat 9 Standard の場合は、システムメニューの【編集】から【環境設定】を選択して、その中の【SignedPDF】を選択します。

すると、SignedPDF の環境設定画面が表示されます。

"p12" という拡張子のファイルに保存された電子証明書を使用する場合、ここの "署名用鍵管理" で "証明書ストア" を選択します。

そして【証明書ストア管理ツール】ボタンを押して、使用する証明書ファイルを選択するのですが、はじめてこれを利用する場合には、"証明書ストア" の初期化を行う必要があるようでした。

ここで【初期化】を選んで【OK】ボタンをクリックすると、証明書ストアの初期化を行うかどうかの問いが表示されます。2 回目からは【参照】を選べば、初期化済みの "証明書ストア" が表示されます。

ここで【はい】を選択することで、"証明書ストア" を利用する準備が整いました。

 

ここで【追加】ボタンを押して、インストールする PKCS#12 形式証明書ファイル(拡張子 p12)を選択します。

PKCS#12 形式の証明書ファイルを選択して、その証明書のパスワードを入力して【インストール】を押すことで、その証明書が SignedPDF の "証明書ストア" に登録されました。

 

これで、公的個人認証サービスの電子証明書による電子署名の利用準備が整いました。

実際にこれで電子署名を試してみると、PKCS#12 形式の証明書ファイルからの電子署名を行うことができました。証明書ストアに複数の PKCS#12 電子証明書を登録した場合には、ここで、その中のどの証明書を使って電子署名を行うかを選択する画面が表示されます。

このとき、パスワードはどの証明書でも、証明書ストアに設定したパスワードで署名できるようでしたので、複数人で共有する場合には注意が必要かもしれません。

なお、こちらも署名完了後に、"この製品では、検証はできません。Code=0x3f100001" というダイアログメッセージが表示されますが、これは単に、電子署名に使用した "SignedPDF" が検証機能を省いたものであるためで、電子署名は正しく実施されています。