提问者:小点点

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


我已成功在Azure中设置文件共享(通过存储帐户)。。。然后在该订阅中的VM上,我成功地将一个驱动器装载到文件共享(下面示例中的M驱动器)。这个很好用。接下来,我将证书上载到azure文件共享。通过windows资源管理器,可以在VM中清楚地获得证书。然后,我尝试设置IIS集中式证书,以便从我安装的M驱动器读取证书。IIS对此感到不高兴。

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


共1个答案

匿名用户

有办法的!

您需要使用存储帐户(名称/密钥)的用户名/密码设置本地计算机帐户,您将在配置中使用该帐户作为用户名/密码。您需要提供路径作为文件共享的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/服务器才能使用它,其他机器将无法提供https内容,因为连接重置。

微软一直无法解释原因。