こちらの記事で、自作したVBAマクロにデジタル証明書をつけて配布する方法を紹介しましたが、この方法だと証明書自体の再配布(エクスポート)はできません。そこで、証明書をエクスポート可能な別の方法を紹介します。
SELFCERTの難点(エクスポートできない)
先日別の記事で、VBAマクロで利用可能なデジタル証明書の作る方法として、Microsoft Officeに標準で付属しているSELFCERT.EXEを利用するやり方を紹介しました。しかしこの方法には一点難点があります。
それは「SELFCERT.EXEで作成したデジタル証明書はエクスポートできない」ということです。
マクロを作成してデジタル証明書を添付して、マクロを配布するという一連の中だけを見ると何も問題ないです。しかし、配布元PCを新しく買い替えた場合に問題が発生します。先述した通り「デジタル証明書をエクスポートできない」ため、旧PCで利用していたデジタル証明書を新PCに移行できないのです。
デジタル証明書を無尽蔵に複製できることはセキュリティ上リスクとなりますから、「エクスポート」できないのは安全面飲みを考えれば良いことに間違いありません。しかしパソコンには寿命もありますし、新端末に切り替えたあとに新しい証明書を作成した上で、利用者に周知すると言うのは手間になります。
エクスポート可能なデジタル証明書を作成しよう!
ということで、最初からエクスポート可能なデジタル証明書を作成して利用することにしましょう。この方法だと、Visual Studioのインストールが必要になりますが、次に述べるような利点を得られるようになりますので、端末を頻繁に変える人や、複数人で証明書を共有したい人などは、この方法を使うといいと思います。
デジタル証明書をエクスポートできる利点
- 複数のPCでで同じデジタル証明書を利用できる。
- 突然PCが壊れても、新しいPCでデジタル証明書を利用継続できる。
- 新しいPCに移行する場合も、旧PCで使っていたデジタル証明書を利用できる。
- 作業PCが複数ある場合、複数のPCで同じデジタル証明書を利用できる。
- 複数人で同じ署名を利用できる(共同開発者など)。
セキュリティリスクは理解してください
最初にも記載しましたが、デジタル証明書を複製して複数端末に配布することは、その意味を理解していないとセキュリティにおいて非常なリスクになりえますので、それを了承した上で利用してください。つまり、デジタル証明書の意義とか仕組みを知ってからやってください。
やり方
- Visual Studioをインストールする
- スタートメニューからVisual Studioのフォルダを開く。
- 開発者コマンドプロンプト for VSを選択する。
- コマンドプロンプトに「MakeCert.exe -r -pe -n “CN=aiueo” -eku 1.3.6.1.5.5.7.3.3 -ss My」と入力し、Enter。「Succeeded」と表示されたら完了。
※”aiueo”には証明書につけたい名前を入れる。
証明書の確認方法
この状態で、VBエディタからデジタル署名の指定を開くと、すでに利用できるようになっている。(作成した名前の証明書を選択できるようになっている。)
Internet Explorerにて、設定>インターネットオプション>コンテンツ>証明書と開き進めると、作成した証明書と同じ名前の証明書が生成されていることがわかる。本画面で「エクスポート」を押下すると、デジタル証明書をエクスポートできる。
ここでエクスポートした証明書ファイルを、別の端末にメールやら、ファイルサーバなどで送付する。そして同じ画面からインポートしてやれば、別の端末のVBAでも同じ証明書を利用することができる。