我已在 Azure 中成功设置文件共享(通过存储帐户)...然后在该订阅中的 VM 上,我已成功将驱动器安装到文件共享(以下示例中的 M 驱动器) 。这很好用。接下来,我将证书上传到 azure 文件共享。该证书显然可以通过 Windows 资源管理器在 VM 中获得。然后,我尝试设置 IIS 集中证书以从我安装的 M 驱动器读取证书。 IIS 对此并不满意。
同样,我可以毫无问题地从虚拟机访问已安装的驱动器...但是在设置中央证书位置时,IIS 将不允许使用此已安装的驱动器。 IIS 需要共享的用户名和密码,并且不会接受本地用户或文件存储的用户/ key 凭据(尽管这两者都不是必需的,因为共享连接本身包含连接用户和 key )。 IIS 的此功能似乎与 Azure 文件共享不兼容。有办法让它工作吗?
最佳答案
有办法!
您需要使用存储帐户的用户名/密码(名称/ key )设置本地计算机帐户,您将在配置中将其用作用户名/密码。 您需要提供路径作为文件共享的 UNC 路径。
但是,这不起作用,因为 GUI 不接受该路径,因此您可以通过 Powershell 将路径设置为本地路径,然后在注册表中更改它:
param
(
[Parameter(Mandatory = $true)]
[string] $StorageAccountName,
[Parameter(Mandatory = $true)]
[string] $StorageAccountPassword,
[Parameter(Mandatory = $true)]
[string] $FileShareName,
[Parameter(Mandatory = $true)]
[string] $CertificatePrivateKeyPassword
)
net localgroup Administrators $StorageAccountName /add
Enable-WebCentralCertProvider -CertStoreLocation "C:\Windows\Temp" -UserName $StorageAccountName -Password $StorageAccountPassword -PrivateKeyPassword $CertificatePrivateKeyPassword
Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\IIS\CentralCertProvider -Name CertStoreLocation -Value "\\$StorageAccountName.file.core.windows.net\$FileShareName"
net localgroup Administrators $StorageAccountName /delete
这将使该功能正常工作,但您会发现只有第一个从商店加载/访问证书的虚拟机/服务器才能使用它,其他计算机将无法提供 https 内容由于连接重置。
微软无法解释原因。
关于azure - 将 IIS 集中证书存储与 Azure 文件共享结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38211401/