83

私は SSL 通信の謎を受け入れようとしており、このサイトで素晴らしいチュートリアルを見つけました。私は自分の証明書をテストしようとしていました。Visual Studio 2012 を使用して、既存のファイル (.pfx 形式の証明書) を追加し、app.config の「証明書」と「パスワード」の設定を変更しました。ただし、実行しようとすると、エラーが発生しました。

CryptographicException が処理されませんでした: システムは指定されたファイルを見つけることができません

次に、Web サービスで同じことを試しました。そこで、エラーに関する詳細をいくつか取得しました。

System.Security.Cryptography.CryptographicException: System cannot find specified file.

   at System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr)
   at System.Security.Cryptography.X509Certificates.X509Utils._QueryCertFileType(String fileName)
   at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags)
   v System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password)
   v TestServer.DataService.LoadSoap() v c:\Users\Administrator\Documents\Visual Studio 2012\Projects\TestServer\TestServer\DataService.asmx.cs:line 48

この記事の著者にこの質問を書きましたが、彼の最後の返信は 2012 年 3 月だったので、彼が返信するかどうかはわかりません。誰かがこの問題で私を助けることができれば、私はとても感謝しています.

PS: 証明書を .cer から .pfx にエクスポートするときに、エクスポートされるファイルのタイトルを変更しました。問題への影響は疑わしいですが、むしろ言及したいと思います。

4

5 に答える 5

262

IIS のアプリケーション プールで次のように設定しましたか?

  1. IIS マネージャーに移動します
  2. アプリケーション プール インスタンスに移動します
  3. 詳細設定をクリック
  4. [プロセス モデル] で、[ユーザー プロファイルの読み込み] を true に設定します。

詳細については、このスタックの質問を参照してください: IIS プールの LoadUserProfile を設定すると正確にはどうなりますか?

于 2014-12-02T05:27:54.863 に答える
6

この質問は検索ランキングが高いため、X509Certificate2 に、ASP.net アプリケーションで相対的に配置された pxf キー ファイルへの絶対パス (それのみが受け入れます) を提示する方法を提示したいと思います。

    string path = HttpContext.Current.Server.MapPath("~") + "..\keys\relative_key.pfx";

    X509Certificate2 cert = new X509Certificate2(path, "", X509KeyStorageFlags.DefaultKeySet);
于 2015-09-15T23:32:28.720 に答える