Search code examples
asp.net-coreweb-hostingx509certificate.net-5pfx

Configure .pfx certificate


I'm working .Net 5.0 and I get these errors when I throw it to the hosting server. After a while, my website gives HTTP error 500 due to these errors. I created the certificate with OpenSSL and user profile as true but when I try to add a certificate I get these errors.

What should I do about this?

  warn: Microsoft.AspNetCore.DataProtection.Repositories.EphemeralXmlRepository[50]
          Using an in-memory repository. Keys will not be persisted to storage.
    warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[59]
          Neither user profile nor HKLM registry available. Using an ephemeral key repository. Protected data will be unavailable when application exits.
    warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
          No XML encryptor configured. Key {f071590d-e902-4b6f-bbbe-d27d7415d96b} may be persisted to storage in unencrypted form.
    crit: Microsoft.AspNetCore.Hosting.Diagnostics[6]
          Application startup exception
          Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException: The system cannot find the file specified.
        

My startup is like this:

services.AddDataProtection()
            .SetApplicationName("MyProjectName")
            .ProtectKeysWithCertificate(new X509Certificate2(certificate, "password", X509KeyStorageFlags.MachineKeySet
                             | X509KeyStorageFlags.PersistKeySet
                             | X509KeyStorageFlags.Exportable))  //My bad line of code
                   .UseCryptographicAlgorithms(
                    new AuthenticatedEncryptorConfiguration()
                    {
                        EncryptionAlgorithm = EncryptionAlgorithm.AES_256_CBC,
                        ValidationAlgorithm = ValidationAlgorithm.HMACSHA256
                    }
             )
             .PersistKeysToFileSystem(new DirectoryInfo(keysFolder)) //shared network folder for key location
             .SetDefaultKeyLifetime(TimeSpan.FromDays(600));

Solution

  • The problem was that iss out of date on the server side. The provider updated the server and the problem was resolved