4

組み込みツールを使用して、証明書の秘密鍵をモノ証明書ストア/キーペアストアにインポートできないという問題に直面していますcertmgr

証明書の公開バージョンをストアに追加すると、

user@maschine:~certs$ certmgr -add -c My MyCert.crt
Mono Certificate Manager - version 2.10.8.1
Manage X.509 certificates and CRL from stores.
Copyright 2002, 2003 Motus Technologies. Copyright 2004-2008 Novell. BSD licensed.

1 certificate(s) added to store My.

ただし、対応する秘密鍵を追加しようとすると例外が発生します

user@maschine:~certs$ certmgr -add -c My MyCert.p12
Mono Certificate Manager - version 2.10.8.1
Manage X.509 certificates and CRL from stores.
Copyright 2002, 2003 Motus Technologies. Copyright 2004-2008 Novell. BSD licensed.


Unhandled Exception: System.Security.Cryptography.CryptographicException: Invalid MAC - file may have been tampered!

最初に公開バージョン ( ) を追加して.cerから、対応する秘密鍵を非公開バージョン ( .p12) からインポートしようとすると失敗しますが、わずかに異なる例外があります。

user@maschine:~certs$ certmgr -add -c My MyCert.crt
Mono Certificate Manager - version 2.10.8.1
Manage X.509 certificates and CRL from stores.
Copyright 2002, 2003 Motus Technologies. Copyright 2004-2008 Novell. BSD licensed.

1 certificate(s) added to store My.
user@maschine:~certs$ certmgr -importKey -c My MyCert.p12
Mono Certificate Manager - version 2.10.8.1
Manage X.509 certificates and CRL from stores.
Copyright 2002, 2003 Motus Technologies. Copyright 2004-2008 Novell. BSD licensed.

Unhandled Exception: System.Security.Cryptography.CryptographicException: Improperly protected user's key pairs in '/var/licapp/.config/.mono/keypairs'.

証明書をパスワードで保護する (および対応するパラメーターをコマンドに追加する) ことも役に立ちません。

Debian Wheezy で mono V 2.10.8.1 を使用しています。ハンドル証明書をストアに追加し、キーペアをcertmgrで処理する方法を知っている人はいますか?

ストアを使用せずにアプリケーションの下に p12 ファイルを保持するという回避策を検討しています。しかし、証明書とキーペアの両方をストアに追加することはできません。

証明書は問題ないようです。それらを Windows の Store に追加することは問題なく機能します。

4

1 に答える 1

4

ドキュメントにはいくつかの問題があり、ツールの動作は少し奇妙であるか、場所によっては間違っています...

  1. プログラムがキーペアを作成するときに、キーペアディレクトリのアクセス許可が正しく設定されていません。chmod 700 ~/.config/.mono/keypairs リストした例外を解決しました。
  2. アクションを使用している-importKey場合でも、man ページには object-type を使用する必要があるとは記載されていませんが、object-type 証明書を指定する必要があります。さらに、「秘密鍵」オブジェクト タイプはありませんが、代わりに「証明書」オブジェクト タイプを使用します ( -c)。元。certmgr -importKey -c -v -p p12password My CertAndKeyPair.p12成功メッセージが表示されます。
  3. ステップ 2 の後、証明書/キーにはアクセスできません。P12 をインポートした後、DER でエンコードされた証明書をインポートします。元。certmgr -add -c My Certificate.cerこれにより、.NET コードで証明書/キーを使用できるようになります。
  4. 証明書/キーをマシン ストア ( -m) にインストールする場合は、 を使用する必要がありますsudo
于 2015-07-10T00:07:47.067 に答える