2017-12-30 19 views
0

ローカルの環境でp12ファイルをディスクの場所から読み取る必要がありますが、Windowsサーバー2008にサイトを公開すると次のエラーが表示されます。Windowsサーバー2008でp12ファイルを読み取ることができません

System.Security.Cryptography.CryptographicException: An internal error occurred.

at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) at System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromFile(String fileName, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx) at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags)

私が持っているコードは次のとおりです。私はすでにP12ファイルのあるフォルダへの完全なアクセス許可を設定し

var certP12 = new X509Certificate2(
        @"C:\temp\file.p12", 
        "123456", 
        X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet); 

誰でもこれを手伝うことができますか?

+0

Nine申し訳ありませんが、コードを簡単に表示するように変更しましたが、これを修正しますが、これは問題ではありません。 –

+0

管理者権限でアプリケーションを実行しようとしましたか? – NineBerry

+0

これはWebサイトで、AppPoolIdentityを実行しているIIS上で公開しています。同じアイデンティティを持つ他のアプリケーションがうまく動作しています。 –

答えて

0

可能なだまされやすい人、そして予想答えた:、ローカル環境では、要するに

"An internal error occurred." when loading pfx file with X509Certificate2

おそらくあなたのローカルユーザーストアに証明書を入れしようとしているが、その店はからアクセスできませんあなたのウェブサイト代わりにマシンストアに行くように言われる必要があります。

+0

アラン氏に感謝します...しかし、p12をインストールしたくありません。 –

+0

AFAIK、すべてのX509Certificate2コンストラクタは、コンテナに証明書を格納します。そのため、Userコンテナに移動したくない場合は、ローカルコンピュータコンテナに移動する必要があります。あなたが本当にそれを永続化したくない場合は、それを完了した後、ストアから削除するために何らかの操作を行う必要があります。 –

関連する問題