パスワードを忘れた? アカウント作成
504342 journal

oopsの日記: Excel のマクロにデジタル署名

日記 by oops

古い話題だろうけど、Excel のマクロにデジタル署名を付けるやり方。今のデフォルトのセキュリティ設定だと署名付いてないとマクロ実行されないし。

Office をインストールしたディレクトリの selfcert.exe を使用すると簡単だが、OpenSSL を使って作った自己証明書も使える。OpenSSL は Cygwin (ttp://cygwin.com) に付属してる他、ttp://www.slproweb.com/products/Win32OpenSSL.html からもバイナリが手に入るっぽい。

$ openssl genrsa -out foo.key 2048

とかやって、秘密キーを作る。2048は秘密キーのビット数で、1024ぐらいがいいみたい。selfcert.exeだと512ビットで小さいし、エクスポートできないから他の PC で同じデジタル署名つけれない問題がある。foo.key が秘密キーになる。

$ openssl req -new -x509 -days 3650 -key foo.key -out foo.crt

とやって証明書を作る。3650は3650日で10年の有効期限。デフォルトだと30日なんで。

Country Name (2 letter code) [AU]:.
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (eg, YOUR name) []:Foo
Email Address []:.

とか聞かれると思うが、Common Nameのところだけちゃんと設定して、後は"."にしとけばいい。foo.crt が証明書になる。最後に

$ openssl pkcs12 -export -in foo.crt -inkey foo.key -out foo.p12

とやってパスワードを入力すれば、pkcs#12形式のができる。

これを登録するわけだが、まず、IE のアイコンを右クリックとかして「インターネットのプロパティ」ダイアログを出してやる。コンテンツ→証明書でインポートボタン押して foo.p12 を選択ししてやると個人のところに出ると思う。

後は、ExcelのVBエディタでデジタル署名を付ける時、選択枝で出る。一般に配布するマクロに付けるやつはもっとちゃんとやって作ったコード証明書を使うべきだろうけど。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

読み込み中...