使用IIS集中证书存储与Azure文件共享

时间:2016-07-05 19:38:58

标签: azure iis iis-8 azure-files

我已经在Azure中成功设置了文件共享(通过存储帐户)...然后在该订阅中的虚拟机上我已成功将驱动器安装到文件共享(M驱动器中)以下示例)。这很好用。接下来,我将证书上传到azure文件共享。通过Windows资源管理器可以在VM中清楚地看到证书。然后,我尝试设置IIS集中证书,以从我已安装的M驱动器读取证书。 IIS对此并不满意。

同样,我可以毫无问题地从我的VM访问已安装的驱动器......但是在设置中央证书位置时,IIS将不允许使用此已安装的驱动器。 IIS需要共享的用户名和密码,并且不接受本地用户或文件存储的用户/密钥凭证(尽管两者都不必要,因为共享连接本身包含连接用户和密钥)。看起来IIS的此功能与Azure文件共享不兼容。有没有办法使这项工作?

enter image description here

1 个答案:

答案 0 :(得分:0)

有办法!

您需要使用存储帐户(名称/密钥)的用户名/密码设置本地计算机帐户,您将在配置中将其用作用户名/密码。 您需要提供Path作为文件共享的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

这将允许该功能正常工作,但您会发现只有第一个从商店加载/访问证书的VM / Server才能使用它,其他机器将无法提供https内容由于连接重置。

微软未能解释原因。