无法使用 Let's encrypt certificate into Azure Web App
Unable to use Let's encrypt certificate into Azure Web App
我刚刚将这个插件安装到我的 azure webapp 中
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);
}
除了我尝试访问 public 键的那一行之外,启动工作正常:
col[0].PublicKey.Key.KeyExchangeAlgorithm
我收到这个异常:
System.NotSupportedException: The certificate key algorithm is not
supported. at
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) and the github (https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/PublicKey.cs),仅支持 RSA 和 DSA。
所以我的问题是:我能做什么?我尝试将证书转换为 pfx 文件,但我没有找到该证书的私钥(我只有指纹)
您不需要使用 CA-issued 证书进行令牌签名,因此您可以 self-issue。在 Windows 上,以下命令将生成具有正确属性的证书:
makecert -r -pe -n "CN=MyCertName" -b 01/01/2019 -e 01/01/2039 -eku 1.3.6.1.5.5.7.3.3 -sky signature -a sha256 -len 2048 -ss my -sr LocalMachine
我刚刚将这个插件安装到我的 azure webapp 中 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);
}
除了我尝试访问 public 键的那一行之外,启动工作正常:
col[0].PublicKey.Key.KeyExchangeAlgorithm
我收到这个异常:
System.NotSupportedException: The certificate key algorithm is not supported. at 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) and the github (https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/PublicKey.cs),仅支持 RSA 和 DSA。
所以我的问题是:我能做什么?我尝试将证书转换为 pfx 文件,但我没有找到该证书的私钥(我只有指纹)
您不需要使用 CA-issued 证书进行令牌签名,因此您可以 self-issue。在 Windows 上,以下命令将生成具有正确属性的证书:
makecert -r -pe -n "CN=MyCertName" -b 01/01/2019 -e 01/01/2039 -eku 1.3.6.1.5.5.7.3.3 -sky signature -a sha256 -len 2048 -ss my -sr LocalMachine