更改ESXi服务器的默认证书

Nicky 16 0
摘要:

几经波折,从网上找个各种范例都没能成功更改ESXi服务器的默认证书,最后搜索了各种资料,记录下来分析给大家

温馨提示

本人只限于有ESXi小主机的用户,vCenter Server的用户直接在UI用替换就可以了

调整域名配置

如果一开始在安装ESXi的时候,如果我们没有在配置页面输入搜索域或者是域名的情况下,ESXi是会默认给你一个localhost.localdomain的证书的,也能保证安全。

更改ESXi服务器的默认证书

上图来源于网络

我们要去修改 ESXi 主机名,来保证完整使用。

首先。登录到ESXi Host Client的Web界面,导航至 网络 -> TCP/IP 堆栈 -> 默认 TCP/IP 堆栈 -> 编辑设置。将“主机名称”从 localhost 修改为目标名称(如 esxi-01),并填写正确的“域名”(如 yourdomain.com),最好搜索域也一并改成跟域名一样的地址。最后保存。这样相当于ESXi内部是被设置了主机名的,就不会再出现localhost.localdomain的情况。
更改ESXi服务器的默认证书

更改ESXi服务器的默认证书

温馨提示

当然如果你不设置,直接DNS指派过来也能默认访问,只不过不被ESXi认可罢了。

这时候,我们运行以下命令其实是可以基于FQDN自动生成证书的。

/sbin/generate-certificates

这个证书是自签名,不被浏览器接受,我们还是要继续往下走。

上传域名证书

找到我们从SSL商提供的证书,一般是Nginx方式给的pem格式的crt证书,跟配套的key文件。接下来就是替换了。

先把SSL提供的证书修改为rui.crt跟rui.key,默认ESXi只认这个名字。

执行以下操作前,首先要在Web管理平台开启Secure Shell

把这两个文件通过WinSCP等工具上传到/tmp目录下,剩下的我们通过SSH连接到ESXi服务器上进行配置。

通过Putty等工具,登录到ESXi上,执行以下命令

mv /etc/vmware/ssl/rui.crt /etc/vmware/ssl/rui.crt.bak
mv /etc/vmware/ssl/rui.key /etc/vmware/ssl/rui.key.bak
cp /tmp/rui.crt /etc/vmware/ssl/
cp /tmp/rui.key /etc/vmware/ssl/

重启服务

最后执行热启动服务等生效就够了。

/etc/init.d/hostd restart
/etc/init.d/vpxa restart

疑难处理

一般来说,经历上面的就能把域名证书更新了,刷新浏览器缓存基本上就可以看到绿锁了。不过我就遇到了执行以上命令仍然不通过的。

以下命令必须要在/etc/vmware/ssl目录下执行

接下来我来讲我是如何处理的:

  1. 先执行命令让EXSi重新生成基于新的FQDN的证书
    /sbin/generate-certificates
  2. 再将我们拿到的SSL证书厂商发的证书重新上传
    这里我就不再描述了,跟上面一样
  3. 执行以下命令来验证证书是否有效
    有可能是私钥跟ESXi不匹配,我们让OpenSSL重新调整下转换为标准的 RSA 格式 (PKCS#1)

    openssl rsa -in rui.key -out rui.key

    也有可能没上传成功,我们检查下网域情况,看看是否正确

    openssl x509 -in rui.crt -text -noout | grep "Subject:"
    openssl x509 -in rui.crt -text -noout | grep -A 1 "Subject Alternative Name"

    最后看两个证书的MD5是否一样

    openssl x509 -noout -modulus -in rui.crt | openssl md5
    openssl rsa -noout -modulus -in rui.key | openssl md5

    也许前面都作对了,但是可能是前面的热重启命令没有完全刷新缓存,使用这个命令可以完整刷新,不过可能会造成SSH断线。

  4. 执行服务全部重启命令
    services.sh restart

 

发表评论 取消回复
表情 图片 链接 代码

分享