IdentityServer4:无法加载证书,无法加载证书

问题描述:

我无法加载x509证书。IdentityServer4:无法加载证书,无法加载证书

问题:找不到证书。我查过了,它就在那里! :(


public static X509Certificate2 Get() 
    { 
     var assembly = typeof(Certificate).GetTypeInfo().Assembly; 
     var names = assembly.GetManifestResourceNames(); 

     /*********************************************************************************************** 
     * Please note that here we are using a local certificate only for testing purposes. In a 
     * real environment the certificate should be created and stored in a secure way. 
     **********************************************************************************************/ 
     using (var stream = assembly.GetManifestResourceStream("Identity.API.Certificate.idsrv3test.pfx")) 
     { 
      return new X509Certificate2(ReadStream(stream), "idsrv3test"); 
     } 
    } 

    private static byte[] ReadStream(Stream input) 
    { 
     byte[] buffer = new byte[16 * 1024]; 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      int read; 
      while ((read = input.Read(buffer, 0, buffer.Length)) > 0) 
      { 
       ms.Write(buffer, 0, read); 
      } 
      return ms.ToArray(); 
     } 
    } 

参考https://github.com/dotnet-architecture/eShopOnContainers/blob/38ade408629a606bc63bb09ea1f4e54ca473e617/src/Services/Identity/Identity.API/Certificate/Certificate.cs

我加载从Startup.cs与下面的代码证书

X509Certificate2 cert = new X509Certificate2(Path.Combine(_env.ContentRootPath, "cetname.pfx"), "password"); 
+0

它工作吗?你在哪里放置证书?在根? – 001

+0

是的,在根文件夹中,我正在使用这样的证书 –

您需要更改生成操作在.pfx文件中添加到EmbeddedResource。在Visual Studio中易于在文件的属性窗口中进行操作。

你可以看到在这样的csproj中的结果: https://github.com/dotnet-architecture/eShopOnContainers/blob/38ade408629a606bc63bb09ea1f4e54ca473e617/src/Services/Identity/Identity.API/Identity.API.csproj

+0

我试过了,它没有用!所以我只是直接从文件中读取,这工作,但现在我有一个不同的问题。 – 001