在前几节中,我们虽然在租户门户中创建了私有虚机,但还不能用控制台登录,只能选择远程桌面连接。
但远程桌面登录很有局限性,严重依赖于网络情况,比如不小心禁用网卡了、主机没有IP了、防火墙禁了远程、RDP服务异常了,那就永远登录不虚机了。
租户门户中其实有控制台登录选项,但如果选择控制台登录的话,就会出现以下错误:
下面我们来看看怎么来配置使用控制台登录。
1.首先我们来看下远程控制台登录运作原理
2)租户门户通过SPF服务接口来确定租户需要使用什么服务,这里确认使用Remote Desktop Gateway(RD网关)服务。
3)WAP通过浏览器把远程登录文件发送给租户,租户打开后准备连接虚拟机。
4) 租户本地远程桌面客户端读取远程登录文件,通过RD网关连接到Hyper-v的Host主机,然后再通过VMBus连接到虚机。
5)VMM,RD网关,Hyper-v Host都需要证书的支持,其中VMM需要私钥。
2. 既然控制台登录需要证书支持,那我们来安装证书服务。
我们就在域控上安装吧。
本节配置证书只需安装证书颁发机构就可以了,我顺手把联机响应也装了。
配置证书,选企业根CA,基本都默认就好。
这里要注意了,需要选择SHA256哈希算法,和2048及以上的密钥长度
接下来默认就好,最后点击安装。
3. 接下来打开工具中的证书颁发机构,准备创建证书模板。
管理证书模板
常规标签中更新下名称
加密标签中配置秘钥大小为2048,请求提供程序选择为Microsoft Enhanced RSA and AES Cryptographic Provider。
配置使用者名称:在请求中提供。如果有警告直接确认就好。
安全标签中配置管理员为:完全控制。
请求处理标签中配置允许导出私钥。
4. 回到证书模板,选择新建—要颁发的证书模板。
选择刚才创建的模板,最后确定
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
3)通过以下命令可以验证证书请求文件是否有效。
certutil cert.req
4)把证书请求发送给CA
certreq -attrib "CertificateTemplate:RemoteConsoleConnect" -submit cert.req cert.cer
并选择AD的颁发机构,最后注册成功。
5)接受证书并存储。
certreq -accept cert.cer
6) 可以用以下命令确认证书序列号
certutil –store my
7) 导出证书的pfx文件,注意序列号要换成自己的。
certutil –exportpfx my 12000000031ee336728695ba6e000000000003 C:\Cert\cert.pfx
8)可以到文件夹中确认pfx文件,这个证书是带有私钥的。
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
Get-SCVMHost -VMMServer $VMMServer | Read-SCVMHost
7. 现在来配置RD网关服务器了。
我这里用sc-file这台服务器充当RD网关服务器。
安装远程桌面服务,这个没什么好多说的了。
选取远程桌面网关。
8. 打开SCVMM的安装文件夹
SC2012 R2 SCVMM\amd64\Setup\msi\RDGatewayFedAuth
找到这个安装包,安装在RD网关服务器中。
RDGatewayFedAuth.msi
9.导入证书公钥。
1)可以用以下命令查询指纹值
Import-Certificate -CertStoreLocation cert:\LocalMachine\My -Filepath 'C:\Cert\cert.cer'
Get-ChildItem -path cert:\LocalMachine\My
2)导入证书
$Thumbprint中填入刚才查询到的指纹值
$Server = "sc-file.scdemo.local"
$Thumbprint = "21A7E2EF864E0C46DBDF8518129A055634C777E1”
$TSData = Get-WmiObject -computername $Server -NameSpace "root\TSGatewayFedAuth2" -Class "FedAuthSettings"
$TSData.TrustedIssuerCertificates = $Thumbprint
$TSData.Put()
10.选择远程桌面网关管理器
右键选择RD服务器,选取属性。
在SSL证书标签中,导入刚才的证书。
11.最后到管理员的WAP门户中,在VM云中,选取vmm管理服务器后,点击编辑。
输入RD网关FQDN。
这样经过漫长的过程,RD网关终于全部配置完成了,最后去租户页面验证下吧。
12.登录租户门户,这次还是选取连接控制台。
确认后,这时会收到一个远程配置的rdp文件。
打开后即可连入自己的虚机。
我们来试试,即使把网卡禁用后,连接还是能保持着。
如果配置中有任何问题,欢迎提出一起讨论。
转载于:https://blog.51cto.com/yaojiwei/1427178