OpenSSLで生成されたPEM形式のX.509証明書と、それに関連付けられたキーファイルがあります。この証明書は、プロトタイプサーバーに接続するときの認証に必要です。これはLinuxでは問題なく動作します。 Microsoft SChannel APIを使用してWindowsプラットフォームでSSL/TLS接続を駆動してきましたが、同じテスト証明書を使用したいと思います。証明書ファイルを右クリックして証明書ストアにインポートできますが、秘密キーが一緒にインポートされていないと思います(同じファイルに連結した場合でも)。
SChannelコードを実行しようとすると、セキュリティコンテキストを(InitializeSecurityContextを介して)初期化すると、「SEC_E_NO_CREDENTIALS」エラーが発生します。これは秘密鍵が欠落していることを意味していると思います。
「certmgr.msc」を介してアクセスされる個人(または「マイ」)証明書ストアにある証明書の秘密鍵の有無をテストする方法を知っている人はいますか?ストア内の証明書の新しいキーファイルをインポートすることはできますか?
洞察やアドバイスをいただければ幸いです。
証明書に秘密鍵がインストールされているかどうかをテストするには、certmgr.mscの証明書アイコンをダブルクリックします。プライベートキーがある場合は、プロパティページにプライベートキーがあることを示すメッセージが表示されます。それ以外の場合は、プライベートキーへの参照が提供されません。
秘密鍵を含む証明書をインポートするには、次のようにします。
「このファイルは次の用途には無効です:個人情報交換」など、pfxファイルをインポートするときにエラーが表示される場合があります。このエラーは、証明書が適切なX.509 v3拡張(使用フィールド(デジタル署名など)など)に欠けていることが原因で発生しました