无法使用让我们将证书加密到Azure Web App中

时间:2019-05-08 14:18:04

标签: c# asp.net-core identityserver4 lets-encrypt x509certificate2

我刚刚将此插件安装到我的Azure Web应用程序中 https://github.com/shibayan/azure-appservice-letsencrypt

它非常适合用作自定义域上托管的SSL证书。

enter image description here

但是现在,我需要使用此证书在后端(它是一个身份服务器)上对操作进行签名

这是我使用位于startup.cs中的此证书的代码:

using (var store = new X509Store(StoreName.My, StoreLocation.CurrentUser))
{
    store.Open(OpenFlags.ReadOnly);
    var col = store.Certificates.Find(X509FindType.FindByThumbprint, "mythumbprint", false);
    if (col.Count > 0)
    {
      builder.AddSigningCredential(col[0]); // the builder of identityserver
    }
    else
    {
        throw new Exception("Startup Error: Unable to find signing certificate");
    }

    _logger.LogInformation(col[0].PublicKey.Key.KeyExchangeAlgorithm);    
}

在我尝试访问公共密钥的那一行中,启动程序运行良好:

col[0].PublicKey.Key.KeyExchangeAlgorithm

我收到此异常:

  

System.NotSupportedException:证书密钥算法不正确   支持的。在   System.Security.Cryptography.X509Certificates.PublicKey.get_Key()

在dotnet核心文档(https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.x509certificates.publickey.key?view=netframework-4.8)和github(https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/PublicKey.cs)之后,仅支持RSA和DSA。

所以我的问题是:我该怎么办?我试图将证书转换为pfx文件,但找不到该证书的私钥(我只有指纹)

1 个答案:

答案 0 :(得分:0)

您不需要使用CA颁发的证书进行令牌签名,因此可以自行颁发。在Windows上,以下命令将生成具有正确属性的证书:

scalacOptions in Test += "-Xfatal-warnings"