Internal.Cryptography.CryptoThrowHelper.WindowsCryptographicException

14,250

Solution 1

Recently had this same issue with ASP.NET Core MVC Boilerplate.

Close Visual Studio, right click on it, "Run as Administrator". Worked for me.

Solution 2

One of two problems is going on.

1) The file "exists", but is a symlink. That tends to confuse the underlying system. (The response is to do File.ReadAllBytes and use the byte[] constructor).

2) The file doesn't exist.

To help diagnose #2 you can read Environment.CurrentDirectory to know where "here" is, and use Directory.EnumerateFiles() to see what is present in the directory and why your file doesn't exist.


Of course, if you didn't think you were loading by file, but thought you were loading from a certificate store: Check your configuration and try again... since you're loading from file :).

Share:
14,250

Related videos on Youtube

DaveN
Author by

DaveN

Jack of all IT trades: from server/workstation design & building, to networking, VOIP, security, automation, application design & development for console, windows & websites in several languages.

Updated on June 04, 2022

Comments

  • DaveN
    DaveN almost 2 years

    I'm getting the following error message from Visual Studio 2017 on first run of the ASP.NET Core MVC Boilerplate template (DotNet Core) regarding the SSL certificate:

    "Internal.Cryptography.CryptoThrowHelper.WindowsCryptographicException occurred HResult=0x80070002 Message=The system cannot find the file specified Source=
    StackTrace: at Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte[] rawData, String fileName, String password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags) at Microsoft.AspNetCore.Hosting.KestrelServerOptionsHttpsExtensions.UseHttps(KestrelServerOptions options, String fileName, String password) ... "

    All other projects using SSL work fine and I've double checked that my localhost certificate is in the Trusted Root Certification Authorities for my local machine and has not expired. The project is running IISExpress - perhaps it's not looking the correct place? I'm not sure. Any ideas where I'm going wrong?

    • Martin Ullrich
      Martin Ullrich almost 7 years
      are you sure the certificate/key file exists at the specified location?
  • DaveN
    DaveN almost 7 years
    thanks, will look deeper into their boilerplate code when I get back to it.