マイナンバーカードの電子署名用証明書が表示されない

マイナンバーカードで文書に電子署名をしようとしたところ、マイナンバーカードの署名パスワードを入力したところで証明書が表示されません。
どうすればマイナンバーカードを使って電子署名できるでしょうか?

FirefoxとSeahorse(鍵マネージャー)でカードリーダーから電子証明書が読めることは確認できています。
(詳しい環境は後ろに書いています。)

やったこと

1. FIrefox 57.0にセキュリティデバイスとしてOpenSCライブラリを登録

  1. Firefoxの設定→プライバシーとセキュリティ→証明書→セキュリティデバイスを選択
  2. 以下のようにモジュールを追加
    • モジュール名: OpenSC PKCS#11 Module
    • モジュルーファイル名: /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so

2. LibreOfficeからFirefox設定ディレクトリのパスを指定

環境変数「MOZILLA_CERTIFICATE_FOLDER」を指定しなくても、オプションのLibreOffice→セキュリティにある証明書から変更できました。

3. LibreOfficeを起動して署名

  1. LibreOfficeを起動して、電子署名をする文書を開く
  2. メニュー:ファイル→デジタル署名→デジタル署名を選択
  3. デジタル署名ダイアログの「ドキュメントに署名」ボタンを押す

そうするとJPKI(マイナンバーカード)のパスワードの入力を求められます。

パスワードを入力すると

証明書が表示されるはずですが、GPG鍵しか表示されません。

どうすれば証明書が表示されて署名ができるようになるのでしょうか?


環境

  • Debian GNU/Linux Sid (amd64)
  • カードリーダー: SCR3310

LibreOffice 5.4.3

Debian版

バージョン: 5.4.3.2
Build ID: 1:5.4.3-3
CPU threads: 4; OS: Linux 4.13; UI render: default; VCL: gtk3; 
ロケール: ja-JP (ja_JP.UTF-8); Calc: group

TDF版

バージョン: 5.4.3.2
Build ID: 92a7159f7e4af62137622921e809f8546db437e5
CPU threads: 4; OS: Linux 4.13; UI render: default; VCL: gtk2; 
ロケール: ja-JP (ja_JP.UTF-8); Calc: group

OpenSC

ii  opensc                                                           0.17.0-2                             amd64        Smart card utilities with support for PKCS#15 compatible cards
ii  opensc-pkcs11:amd64                                              0.17.0-2                             amd64        Smart card utilities with support for PKCS#15 compatible cards

詳しくないから答えられんが一応メモ。
https://opengrok.libreoffice.org/xref/core/xmlsecurity/source/dialogs/certificatechooser.cxx?r=11d2f3d6#185
ただ、よくわからんのは、mscryptやnssのgetAllCertificates()は長さ0の配列を返すっぽいので
https://gerrit.libreoffice.org/#/c/41508/
暗号化のときに色々表示されているならgpg実装から取得のはず。
一方、パスワード要求を行う関数ポインタはnss実装のコンストラクタで保持しているんだよなあ…

原因は回答に書きましたが自分の凡ミスでした…

Linux環境でマイナンバーカードを使った電子署名ができました。
方法の詳細はこちらをご覧ください。

できなかった原因ですが、パスワードの入力にありました。

「ドキュメントに署名」ボタンを押すとパスワードの入力を求められますが、この疑問を書き込んだときは1回だけの入力と思い込んでました。しかし、パスワードの入力は2回あり、両方が合っていないとリストに証明書が出てこないということでした。

気づかなかった原因としては、1回目と2回目のメッセージがとてもわかりづらい、そして入力を間違えてもエラーが出ない、この二つの理由で気づくのに遅れました。

ということで、まとめとしてはマイナンバーカードを使って電子署名をするときのパスワードは、以下のように最初は署名用パスワード、2回目は4桁のPINコードを入力します。

  1. Digital Signature PIN (JPKI): 署名用電子証明書用暗証番号 (長いパスワード)
  2. User Authentication PIN (JPKI): 利用者証明用電子証明書用暗証番号 (4桁のPINコード)