我已成功在Azure中设置文件共享(通过存储帐户)。。。然后在该订阅中的VM上,我成功地将一个驱动器装载到文件共享(下面示例中的M驱动器)。这个很好用。接下来,我将证书上载到azure文件共享。通过windows资源管理器,可以在VM中清楚地获得证书。然后,我尝试设置IIS集中式证书,以便从我安装的M驱动器读取证书。IIS对此感到不高兴。
同样,我可以毫无问题地从我的VM访问已安装的驱动器...但是在设置中央证书位置时,IIS将不允许使用此已安装的驱动器。IIS需要共享的用户名和密码,并且不接受本地用户或文件存储库的用户/密钥凭据(尽管两者都不必要,因为共享连接本身包含连接用户和密钥)。IIS的此功能似乎与Azure文件共享不兼容。有没有办法让这个工作?
有办法的!
您需要使用存储帐户(名称/密钥)的用户名/密码设置本地计算机帐户,您将在配置中使用该帐户作为用户名/密码。您需要提供路径作为文件共享的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内容,因为连接重置。
微软一直无法解释原因。