12

OpenSSL で生成された PEM 形式の X.509 証明書と、それに関連付けられたキー ファイルがあります。この証明書は、プロトタイプ サーバーに接続する際の認証に必要です。これは Linux で問題なく動作します。Windows プラットフォームで SSL/TLS 接続を駆動するために Microsoft SChannel API を使用してきましたが、同じテスト証明書を使用したいと考えています。証明書ファイルを右クリックして証明書ストアにインポートできますが、秘密鍵は一緒にインポートされていないと思います (それらを同じファイルに連結したにもかかわらず)。

SChannel コードを実行しようとすると、(InitializeSecurityContext を介して) セキュリティ コンテキストを初期化すると、'SEC_E_NO_CREDENTIALS' エラーが発生します。これは、秘密鍵が欠落していることを意味していると思われます。

「certmgr.msc」経由でアクセスする、個人 (または「マイ」) 証明書ストアにある証明書の秘密鍵の有無をテストする方法を知っている人はいますか? 証明書の新しいキー ファイルをストアにインポートすることはできますか?

洞察やアドバイスをいただければ幸いです。

4

1 に答える 1

13

証明書の秘密キーがインストールされているかどうかをテストするには、certmgr.msc の証明書アイコンをダブルクリックします。秘密鍵がある場合は、秘密鍵があることを示すメッセージがプロパティ ページに表示されます。それ以外の場合、秘密鍵は参照されません。

秘密鍵付きの証明書


秘密鍵を含む証明書をインポートするには、次の操作を実行できます。

  1. openssl pkcs12 を使用して、証明書とその秘密キーを PKCS #12 ファイルまたは PFX ファイルにパックします。ここにがあります。
  2. この PKCS #12 または PFX ファイルを証明書ストアにインポートします。

pfx ファイルをインポートするときに、「このファイルは次の用途には無効です: 個人情報交換」などのエラーが表示される場合があることに注意してください。このエラーは、証明書に適切な X.509 v3 拡張 (使用フィールド (デジタル署名など) など) がないために発生しました。

于 2013-03-28T03:51:16.727 に答える