在 Azure App Service Web 作业中使用 X509KeyStorageFlags.EphemeralKeySet 时出错
Error when using X509KeyStorageFlags.EphemeralKeySet in Azure App Service Web Job
我正在尝试在 Azure 应用服务的 Web 作业中实例化 X509Certificate2 对象。证书是 PFX 文件。
当我尝试像这样实例化时,它无法在 WS 调用中使用该对象:
new X509Certificate2(byteArray, password, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.UserKeySet | X509KeyStorageFlags.EphemeralKeySet)
失败是指它开始抛出:
System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.
但是当我这样尝试时,WS 工作正常:
new X509Certificate2(byteArray, password, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.UserKeySet)
唯一不同的是 X509KeyStorageFlags.EphemeralKeySet 的用户。该应用程序在 .Net Framework 4.7.2 上 运行。有人知道为什么会这样吗?
一点解释:我们在应用程序服务中遇到了磁盘 space 的问题,我们已经阅读了一些文章和一些 SO questions/answers 这可能是由于 Windows 将所有读取的证书写入磁盘,因此消耗了大量 space。
一个例子是这个question。
SslStream
,在 Windows 上,无法使用 EphemeralKeySet
键。根本原因是 Windows 不在进程内执行 TLS,而是在不同的进程中执行所有加密操作。他们当前的功能不会尝试 export/transport 其他进程的临时密钥,因此它在另一端失败并显示“我找不到私钥”。
我正在尝试在 Azure 应用服务的 Web 作业中实例化 X509Certificate2 对象。证书是 PFX 文件。
当我尝试像这样实例化时,它无法在 WS 调用中使用该对象:
new X509Certificate2(byteArray, password, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.UserKeySet | X509KeyStorageFlags.EphemeralKeySet)
失败是指它开始抛出:
System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.
但是当我这样尝试时,WS 工作正常:
new X509Certificate2(byteArray, password, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.UserKeySet)
唯一不同的是 X509KeyStorageFlags.EphemeralKeySet 的用户。该应用程序在 .Net Framework 4.7.2 上 运行。有人知道为什么会这样吗?
一点解释:我们在应用程序服务中遇到了磁盘 space 的问题,我们已经阅读了一些文章和一些 SO questions/answers 这可能是由于 Windows 将所有读取的证书写入磁盘,因此消耗了大量 space。
一个例子是这个question。
SslStream
,在 Windows 上,无法使用 EphemeralKeySet
键。根本原因是 Windows 不在进程内执行 TLS,而是在不同的进程中执行所有加密操作。他们当前的功能不会尝试 export/transport 其他进程的临时密钥,因此它在另一端失败并显示“我找不到私钥”。