Woo*_*Hoo 1 x509certificate2 aws-sdk .net-core aws-certificate-manager
我的.Net核心应用程序使用HttpClient向外部Web服务发出发布请求。外部Web服务需要证书进行验证。
证书安装在AWS中,并且我有一个指向证书的ARN。
是否可以通过编程方式从AWS Certificate Manager获取证书并在我的HtppClient中使用它,例如,这是我通常用来添加证书但我需要从AWS获得证书的代码。
private HttpClientHandler HttpClientHandler()
{
var handler = new HttpClientHandler
{
ClientCertificateOptions = ClientCertificateOption.Manual,
SslProtocols = SslProtocols.Tls12
};
handler.ClientCertificates.Add(new X509Certificate2("cert.crt")); //TODO: fetch from AWS.
return handler;
}
Run Code Online (Sandbox Code Playgroud)
因此,这是可能的。
我从NuGet安装了AWSSDK.Core和AWSSDK.CertificateManager。
然后,我为AWS创建了一个凭证文件,请参阅Amazon中的说明 https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html
接下来,我使用AmazonCertificateManagerClient获得证书。
AmazonCertificateManagerClient client = new AmazonCertificateManagerClient();
var certificates = client.GetCertificateAsync(arn).Result;
Run Code Online (Sandbox Code Playgroud)
然后,我将证书从字符串转换为字节,然后添加到处理程序中。
var handler = new HttpClientHandler{
ClientCertificateOptions = ClientCertificateOption.Manual,
SslProtocols = SslProtocols.Tls12
};
byte[] toBytes = Encoding.ASCII.GetBytes(certificates.Certificate);
var cert = new X509Certificate2(toBytes);
handler.ClientCertificates.Add(cert);
var httpClient = new HttpClient(handler);
Run Code Online (Sandbox Code Playgroud)
显然,不是有价值的代码,希望对您有所帮助。
| 归档时间: |
|
| 查看次数: |
600 次 |
| 最近记录: |