EmacsでS/MIMEを使ってメールに署名する話
所属機関のメールアドレスにS/MIMEの署名を付けるための証明書を発行できることを知ったので、設定してみた。ここではGnuPGに同梱されているgpgsmを使う。
まず証明書をgpgsmに読み込ませる必要がある。以下のコマンドでできるはずだがパスフレーズが必要なので、ちゃんと覚えておく必要がある。
gpgsm --import your-file.p12
これで一応署名を付けられるはずだが、CRLチェックが上手く行かない場合は署名に失敗するらしい。今回試した設定では以下でCRLチェックを無効化する必要があった。
echo 'disable-crl-checks' >> ~/.gnupg/gpgsm.conf
以下がEmacsの設定である。特に難しいことはないが、 mml-secure-smime-sign-with-sender を使って自動で証明書を選ばせるようにしている。
(leaf mml-smime
:require (t mml-sec)
:custom
(mml-smime-use . 'epg)
(mml-default-sign-method . "smime")
(mml-default-encrypt-method . "smime")
;; Let Emacs select an appropriate S/MIME signer
(mml-secure-smime-sign-with-sender . t))
この設定だと自動では署名をしない。 C-c RET s s か M-x mml-secure-sign-smime で mml-secure-sign-smime を呼び出すと署名用の文字列が挿入されて署名される。