Horizon view是VMware桌面云解决方案,是当前移动办公/远程办公最流程的平台,同时也是我远程连接实验环境的安全接入工具。
Horizon View涉及到证书的组件包含如下三个:
- Horizon Connetion Server(连接服务器)
- Horizon Composer(链接克隆服务器)
- Horizon Security Server(安全服务器)/VMware Unified Access Gateway(统一访问网关,简称UAG)
其中Connection Server和Composer在企业内部使用,可以使用自签名或者企业CA签发证书,Security Server和UAG用于外网接入,可是使用自签名或者企业CA签发证书,但更推荐企业从CA办法机构购买证书,以提高安全性和用户体验(无证书警告、可以使用指纹登录等功能)。
企业根CA和中间CA的搭建,请参考 [企业CA系列一]搭建企业根CA和中间CA
警告:一定要预先在测试环境进行验证,并考虑好相关联的系统证书信任问题!
前提条件和操作步骤概述
因为Horizon Connection Server和Composer使用Windows证书,所以替换Horizon View证书和vCenter、NSX-T有所不同,大致流程如下:
- 搭建企业CA;
- 使用企业中间CA签发Connection Server、Composer、UAG服务证书;
- 转转证书为 .pfx格式,并配置私钥导出密码;
- 登录Composer所在的服务器,通过证书管理器,导入企业根CA和企业中间CA到“企业受信任根证书颁发机构”;导入Composer的 .pfx证书到“个人”证书存储中;
- 使用sviconfig命令替换Composer证书,重启Composer服务;
- 登录Composer所在的服务器,通过证书管理器,导入企业根CA和企业中间CA到“企业受信任根证书颁发机构”;
- 修改旧的Connection证书的"有好名称"为"vdm-old";
- 导入Connection的 .pfx证书到"个人"证书存储中,并添加"vdm"为有好名称,重启Connection Server服务;
- 登录Horizon管理控制台,重新配置Composer连接,信任新证书;
- 登录到UAG管理控制台,进入TLS服务器证书设置;
- 导入UAG证书链和UAG私钥;
- 重新配置UAG中Connection Server的证书指纹(sha1=);
- 验证桌面连接,完成证书替换。
通过中间CA为Connection Server签发证书
先准备Connection Server证书所需的配置文件和证书签名文件,需要修改以下内容:
- CN": "hz-cs.corp.local"(修改为Horizon View连接服务器域名)
- "hosts": ["127.0.0.1","hz-cs","hz-cs.corp.local","192.168.100.30"] (修改为连接服务器的域名和IP地址)
- "expiry": "87600h" (证书有效期为10年)
mkdir -p /root/certs/hz-cs
cd /root/certs/hz-cs
cat <<EOF > /root/certs/hz-cs/config.json
{
"signing": {
"default": {
"usages": ["digital signature","key encipherment","signing","server auth"],
"expiry": "87600h"
}
}
}
EOF
cat <<EOF > /root/certs/hz-cs/hz-cs-csr.json
{
"CN": "hz-cs.corp.local",
"hosts": [
"127.0.0.1",
"hz-cs",
"hz-cs.corp.local",
"192.168.100.30"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "Changchun",
"O": "VMware",
"OU": "DevOps",
"ST": "Jilin"
}
]
}
cfssl gencert -ca=/root/intermediate/corp/corp-intermediate-ca.pem -ca-key=/root/intermediate/corp/corp-intermediate-ca-key.pem -config=config.json hz-cs-csr.json | cfssljson -bare hz-cs
# Transform .pfx format,need input password for key.
openssl pkcs12 -export -in hz-cs.pem -inkey hz-cs-key.pem -out hz-cs.pfx
通过中间CA为Composer Server签发证书
先准备Composer证书所需的配置文件和证书签名文件,需要修改以下内容:
- CN": "hz-composer.corp.local"(修改为Horizon View Composer服务器域名)
- "hosts": ["127.0.0.1","hz-composer","hz-composer.corp.local","192.168.100.31"] (修改为连接服务器的域名和IP地址)
- "expiry": "87600h" (证书有效期为10年)
mkdir -p /root/certs/hz-composer
cd /root/certs/hz-composer
cat <<EOF > /root/certs/hz-composer/config.json
{
"signing": {
"default": {
"usages": ["digital signature","key encipherment","signing","server auth"],
"expiry": "87600h"
}
}
}
EOF
cat <<EOF > /root/certs/hz-cs/hz-composer-csr.json
{
"CN": "hz-cs.corp.local",
"hosts": [
"127.0.0.1",
"hz-composer",
"hz-composer.corp.local",
"192.168.100.31"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "Changchun",
"O": "VMware",
"OU": "DevOps",
"ST": "Jilin"
}
]
}
cfssl gencert -ca=/root/intermediate/corp/corp-intermediate-ca.pem -ca-key=/root/intermediate/corp/corp-intermediate-ca-key.pem -config=config.json hz-composer-csr.json | cfssljson -bare hz-composer
# Transform .pfx format,need input password for key.
openssl pkcs12 -export -in hz-composer.pem -inkey hz-composer-key.pem -out hz-composer.pfx
通过中间CA为UAG签发证书
先准备UAG证书所需的配置文件和证书签名文件,需要修改以下内容:
- CN": "hz-uag.corp.local"(修改为VMware UAG连接服务器域名)
- "hosts": ["127.0.0.1","hz-uag","hz-uag.corp.local","192.168.100.32"] (修改为连接服务器的域名和IP地址)
- "expiry": "87600h" (证书有效期为10年)
mkdir -p /root/certs/hz-uag
cd /root/certs/hz-uag
cat <<EOF > /root/certs/hz-uag/config.json
{
"signing": {
"default": {
"usages": ["digital signature","key encipherment","signing","server auth"],
"expiry": "87600h"
}
}
}
EOF
cat <<EOF > /root/certs/hz-uag/hz-uag-csr.json
{
"CN": "hz-uag.corp.local",
"hosts": [
"127.0.0.1",
"hz-uag",
"hz-uag.corp.local",
"192.168.100.32"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"L": "Changchun",
"O": "VMware",
"OU": "DevOps",
"ST": "Jilin"
}
]
}
cfssl gencert -ca=/root/intermediate/corp/corp-intermediate-ca.pem -ca-key=/root/intermediate/corp/corp-intermediate-ca-key.pem -config=config.json hz-uag-csr.json | cfssljson -bare hz-uag
cat hz-uag.pem ../../intermediate/corp/corp-intermediate-ca.pem ../../ca/root-ca.pem >> hz-uag-cert-chain.pem
替换Composer Server证书
- 开始->运行->mmc->文件->添加/删除管理单元->证书->添加->计算机账户->本地计算机->确定,进入本地计算机证书管理页面
- 证书(本地计算机)->受信任的根证书颁发机构->证书->右键->导入
- root-ca.pem
- corp-intermediate-ca.pem
- 证书(本地计算机)->个人->证书->导入
- hz-composer.pfx
- 打开命令行工具,进入到C:\Program Files (x86)\VMware\VMware View Composer目录,执行"SviConfig.exe -operation=replacecertificate -delete=false"命命令后,选择证书列表中的Composer证书
- 通过服务重启"VMware Horizon 7 Composer"服务,完成Composer证书替换。
替换Connection Server证书
- 开始->运行->mmc->文件->添加/删除管理单元->证书->添加->计算机账户->本地计算机->确定,进入本地计算机证书管理页面
- 证书(本地计算机)->受信任的根证书颁发机构->证书->右键->导入
- root-ca.pem
- corp-intermediate-ca.pem
- 修改友好名为"vdm"的旧证书的有好名为"vdm-old"
- 证书(本地计算机)->个人->证书->导入
- hz-cs.pfx
- 为新证书添加"vdm"为友好名称
- 通过服务重启"VMware Horizon 7 Connection Server"服务,完成Connection证书替换。
重新配置Horizon连接服务器中的Composer连接
- 登录Horizon管理控制台
- 设置->服务器->vCenter Server->编辑
- 重新输入一次View Composer密码->确定,如果弹出证书信任,接受
- 如果vCenter Server替换证书,您可以按照步骤3重新信任vCenter的证书
- 现在Horizon连接服务器已经重新信任了Composer的新证书,桌面的链接克隆功能恢复正常
替换UAG证书
- 登录VMware UAG管理控制台 https://
:9443 - 选择->手动配置,进入配置页面
- 高级设置->TLS服务器证书设置
- 根据需求选中管理接口和Internet接口;
- 证书类型:PEM
- 专用密钥:hz-uag.key
- 证书链:hz-uag-cert-chain.pem
- 保存后,等待服务器重启完毕
重新配置UAG中Connection Server证书指纹
- 先获取Horiozn Connection Server的证书指纹,通过浏览器打开Horizon链接服务器控制台,通过地址栏查看证书
- 复制证书详细信息中的"指纹"
- 进入到VMware UAG的Horizon设置页面,修改连接服务器URL指纹为"sha1=<form step 2>"
- 点击保存,完成VMware UAG与Horizon的连接
登录Horzion View控制台和UAG控制台验证证书替换结果
可以通过下面的图片看到,HorizonView控制台和UAG控制台的证书都是信任状态,并且Horizon中没有了证书警告。
完成
至此,我们完成了Horizon产品相关证书替换工作。还要提醒大家,这里的证书是企业CA签名的,客户端计算机必须导入企业CA证书信任,才能不提示警告。最后,针对外网使用的客户,建议购买公共受信任的证书。