web-dev-qa-db-ja.com

OpenSSLキーファイルをWindows証明書ストアにインポートする方法

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

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

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

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

10
Gearoid Murphy

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

Certificate with a private key


秘密鍵を含む証明書をインポートするには、次のようにします。

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

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

10
doptimusprime