在前几节中,我们虽然在租户门户中创建了私有虚机,但还不能用控制台登录,只能选择远程桌面连接。

但远程桌面登录很有局限性,严重依赖于网络情况,比如不小心禁用网卡了、主机没有IP了、防火墙禁了远程、RDP服务异常了,那就永远登录不虚机了。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

租户门户中其实有控制台登录选项,但如果选择控制台登录的话,就会出现以下错误:

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

下面我们来看看怎么来配置使用控制台登录。

 

1.首先我们来看下远程控制台登录运作原理

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

1)租户通过浏览器登录到租户门户,选择使用控制台登录虚机

2)租户门户通过SPF服务接口来确定租户需要使用什么服务,这里确认使用Remote Desktop Gateway(RD网关)服务。

3)WAP通过浏览器把远程登录文件发送给租户,租户打开后准备连接虚拟机。

4) 租户本地远程桌面客户端读取远程登录文件,通过RD网关连接到Hyper-v的Host主机,然后再通过VMBus连接到虚机。

5)VMM,RD网关,Hyper-v Host都需要证书的支持,其中VMM需要私钥。

 

2. 既然控制台登录需要证书支持,那我们来安装证书服务。

我们就在域控上安装吧。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

本节配置证书只需安装证书颁发机构就可以了,我顺手把联机响应也装了。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

配置证书,选企业根CA,基本都默认就好。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

这里要注意了,需要选择SHA256哈希算法,和2048及以上的**长度

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

接下来默认就好,最后点击安装。

 

3. 接下来打开工具中的证书颁发机构,准备创建证书模板。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

管理证书模板

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

常规标签中更新下名称

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

加密标签中配置秘钥大小为2048,请求提供程序选择为Microsoft Enhanced RSA and AES Cryptographic Provider。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

配置使用者名称:在请求中提供。如果有警告直接确认就好。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

安全标签中配置管理员为:完全控制。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

请求处理标签中配置允许导出私钥。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

 

4. 回到证书模板,选择新建—要颁发的证书模板。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

选择刚才创建的模板,最后确定

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

 

5. 现在到SCVMM机器中,配置信任关系

1)首先创建一个证书文件夹,并创建一个inf文件,写入以下信息。

注意CN中修改成自己的RD网关FQDN。

[Version]

Signature="$Windows NT$"

[NewRequest]

; Change to your,country code, company name and Remote Desktop Gateway server common name

Subject = "C=US, O=scdemo, CN=sc-file.scdemo.local"

; Indicates both encryption and signing

KeySpec = 1

; Length of the public and private key, use 2048 or higher

KeyLength = 2048

; Certificate will be put into the local computer store

MachineKeySet = TRUE

PrivateKeyArchive = FALSE

RequestType = PKCS10

UserProtected = FALSE

; Allow the key to be shared between multiple computers

Exportable = TRUE

SMIME = False

UseExistingKeySet = FALSE

; ProviderName and ProviderType must be for a CSP that supports SHA256

ProviderName = "Microsoft Enhanced RSA and AES Cryptographic Provider"

ProviderType = 24

HashAlgorithm = sha256

; KeyUsage must include DigitalSignature. 0xA0 also includes Key Encipherment

KeyUsage = 0xa0

[EnhancedKeyUsageExtension]

OID=1.3.6.1.5.5.7.3.2

2)打开命令行并定位到刚才新建的文件夹,输入以下命令生成证书请求文件。

certreq -new -f cert.inf cert.req

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

3)通过以下命令可以验证证书请求文件是否有效。

certutil cert.req

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

4)把证书请求发送给CA

certreq -attrib "CertificateTemplate:RemoteConsoleConnect" -submit cert.req cert.cer

并选择AD的颁发机构,最后注册成功。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

5)接受证书并存储。

certreq -accept cert.cer

6) 可以用以下命令确认证书***

certutil –store my

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

7) 导出证书的pfx文件,注意***要换成自己的。

certutil –exportpfx my 12000000031ee336728695ba6e000000000003 C:\Cert\cert.pfx

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

8)可以到文件夹中确认pfx文件,这个证书是带有私钥的。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

 

6.接下来需要把刚才带有私钥的pfx文件导入VMM中。

打开powershell运行以下命令。

注意下-VMConnectHostIdentificationMode FQDN中,FQDN是租户以FQDN收到RD文件,改为ipv4 address的话就可以收到IP地址了。

 

$cert = Get-ChildItem C:\Cert\cert.pfx

$mypwd = Read-Host –AsSecureString

$VMMServer = "sc-scvmm.scdemo.local"

Set-SCVMMServer -VMConnectGatewayCertificatePassword $mypwd -VMConnectGatewayCertificatePath $cert -VMConnectHostIdentificationMode FQDN -VMConnectHyperVCertificatePassword $mypwd -VMConnectHyperVCertificatePath $cert -VMConnectTimeToLiveInMinutes 2 -VMMServer $VMMServer

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

Get-SCVMHost -VMMServer $VMMServer | Read-SCVMHost

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

 

7. 现在来配置RD网关服务器了。

我这里用sc-file这台服务器充当RD网关服务器。

安装远程桌面服务,这个没什么好多说的了。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

选取远程桌面网关。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

 

8. 打开SCVMM的安装文件夹

SC2012 R2 SCVMM\amd64\Setup\msi\RDGatewayFedAuth

找到这个安装包,安装在RD网关服务器中。

RDGatewayFedAuth.msi

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

 

9.导入证书公钥。

1)可以用以下命令查询指纹值

Import-Certificate -CertStoreLocation cert:\LocalMachine\My -Filepath 'C:\Cert\cert.cer'

Get-ChildItem -path cert:\LocalMachine\My

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

2)导入证书

$Thumbprint中填入刚才查询到的指纹值

$Server = "sc-file.scdemo.local"

$Thumbprint = "21A7E2EF864E0C46DBDF8518129A055634C777E1”

$TSData = Get-WmiObject -computername $Server -NameSpace "root\TSGatewayFedAuth2" -Class "FedAuthSettings"

$TSData.TrustedIssuerCertificates = $Thumbprint

$TSData.Put()

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

 

10.选择远程桌面网关管理器

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

右键选择RD服务器,选取属性。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

在SSL证书标签中,导入刚才的证书。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

 

11.最后到管理员的WAP门户中,在VM云中,选取vmm管理服务器后,点击编辑。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

输入RD网关FQDN。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

这样经过漫长的过程,RD网关终于全部配置完成了,最后去租户页面验证下吧。

 

12.登录租户门户,这次还是选取连接控制台。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

确认后,这时会收到一个远程配置的rdp文件。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

打开后即可连入自己的虚机。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

我们来试试,即使把网卡禁用后,连接还是能保持着。

System Center 2012 R2实例2—构建Azure Pack云16—控制台RD网关

如果配置中有任何问题,欢迎提出一起讨论。