我刚刚将此插件安装到我的Azure Web应用程序中 https://github.com/shibayan/azure-appservice-letsencrypt
它非常适合用作自定义域上托管的SSL证书。
但是现在,我需要使用此证书在后端(它是一个身份服务器)上对操作进行签名
这是我使用位于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文件,但找不到该证书的私钥(我只有指纹)
答案 0 :(得分:0)
您不需要使用CA颁发的证书进行令牌签名,因此可以自行颁发。在Windows上,以下命令将生成具有正确属性的证书:
scalacOptions in Test += "-Xfatal-warnings"