☰
ESXi更换阿里云免费SSL证书,彻底解决HTTPS访问不安全警告
2026/10/1 8:12:25 网站建设 项目流程

如果你手里有一台跑了好几年的ESXi主机,并且通过DDNS绑定了自己的域名,想在外网用https://你的域名访问管理界面,那大概率会被同一个问题卡住:浏览器永远弹“您的连接不是私密连接”,点开高级选项,里面写着一行让人又熟悉又无奈的提示——此证书不受信任。这篇就把ESXi申请阿里云免费SSL证书并配置HTTPS访问的完整过程记录下来,包括申请、替换、验证和后续维护,给同样折腾过的朋友一个可以直接抄作业的参考。

ESXi默认的证书是什么情况,为什么换了阿里云证书之后还是要用域名访问,这两个问题我在一开始折腾时走了不少弯路,所以先把原理讲清楚,后面操作起来就顺了。

1. 为什么ESXi管理界面一直提示“不安全”

1.1 自签名证书的来源与浏览器不信任的原因

ESXi在安装时,会由平台内置的VMCA(VMware Certificate Authority)自动生成一张自签名证书,用于Web管理界面、API接口和部分主机间通信的加密。这张证书的签发者就是ESXi自己,也就是说,它“自证清白”,但浏览器并没有把VMCA的根证书放进系统信任列表。浏览器访问https://ESXi-IP时,会先去检查证书链能不能追溯到某个受信任的根CA,结果发现签发者是个陌生机构,于是直接判定为不安全。

这个逻辑其实和你去车站坐车,有人跑过来跟你说“我是站长,你跟我走”一样——对方确实可能是站长,但你没有办法验证他的身份,所以谨慎的系统默认选择不信任。

很多人习惯直接点“高级→继续前往”,但这样有几个实际影响:一是管理界面的所有请求虽然仍是加密传输,但每次都会提示,容易让人麻木,反而忽略了真正的中间人攻击风险;二是有时候使用的自动化脚本、API工具对证书校验比较严格,自签名证书会导致调用失败。所以与其长期顶着红锁,不如一次性把证书换掉,彻底解决这个问题。

1.2 域名访问是证书生效的前提

这里要提前说清楚,因为很多人在这一块理解错了。SSL证书的核心作用是证明“某个域名”的身份,而不是证明“某台服务器”的身份。你申请阿里云免费证书时,填的是比如esxi.example.com,那证书里绑定的就是这个名字。浏览器访问时,会比对地址栏里的域名和证书里的域名是否一致,不一致就报NET::ERR_CERT_COMMON_NAME_INVALID。

这意味着,替换完证书之后,你必须通过域名访问ESXi,而不是用IP地址。假如你之前一直是https://192.168.1.10访问管理界面,那么换完证书继续用IP访问,大概率还是会报错。

正确的访问方式是这样规划的:

  • 在阿里云DNS解析里,把esxi这个子域名解析到你家的公网IP(公网IP变化就配合DDNS自动更新);
  • 在路由器上把外网的一个端口(比如443,但很多宽带运营商封了80/443,那就用8443)转发到内网ESXi的443端口;
  • 浏览器里访问https://esxi.example.com:8443。

证书验证的是域名,不是端口,所以端口改了不影响证书匹配,只要域名一致就行。

2. 申请阿里云免费SSL证书的核心步骤

2.1 前置条件与证书选型

申请之前,先确认两件事。

第一,你得有一个域名,并且域名解析在阿里云DNS。如果你把域名放在其他注册商也没关系,只要把DNS托管到阿里云解析,或者申请的时候选择手动DNS验证,去自己的DNS管理后台加一条TXT记录都行。

第二,确认要用的子域名,比如esxi.example.com。阿里云免费证书是单域名证书,不支持通配符,也就是这一张证书只能给一个域名用。如果以后还想给nas.example.com也加上HTTPS,那就得另外再申请一张。不过对于ESXi管理界面来说,单域名完全够用,没必要买付费证书。

目前阿里云免费SSL证书针对的是DV类型的证书,即只验证域名所有权,不验证企业身份,适合个人和中小团队使用。有效期方面,2024年之后新申请的免费证书有效期是3个月,到期前需要重新申请签发,这个后面专门说。

2.2 控制台申请与DNS验证

具体操作流程如下:

  1. 登录阿里云控制台,搜索“数字证书管理服务”,进入“SSL证书”页面;
  2. 在左侧菜单找到“免费证书”,点击“创建证书”,按照提示创建一个免费证书订单;
  3. 在证书订单列表中,点击“证书申请”,填写域名esxi.example.com,选择验证方式;
  4. 如果域名解析在阿里云,且当前登录账号有DNS管理权限,可以直接选择“自动DNS验证”,系统会帮你自动添加一条TXT记录;
  5. 如果不在阿里云解析,选择“手动DNS验证”,拿到一条形如_dnsauth的TXT记录值,去你的DNS管理后台手动添加;
  6. 提交申请后,等待审核。正常情况下,几分钟到十几分钟就能签发,如果长时间没签发,检查一下TXT记录是不是真的生效了,可以用命令行nslookup -type=TXT 你的域名验证。

签发成功后,在证书列表点击“下载”,选择Nginx类型。下载的压缩包里有多个文件,其中证书文件是xxxx.pem,私钥文件是xxxx.key。这里要注意,Nginx格式包里的.pem文件通常已经包含了完整的证书链(服务器证书和中间证书),这对后面的配置很有帮助,因为ESXi要求粘贴的证书内容必须包含整条链,否则部分浏览器会报证书链不完整。

3. 在ESXi上替换证书,从“红色警告”到“绿色锁”

3.1 Web界面替换操作明细

拿到证书和私钥两个文件后,接下来登录ESXi的Web管理界面,开始替换。

不同版本的ESXi界面布局略有差异,但路径基本一致:在浏览器里输入https://你的域名:转发端口,登录后进入“管理”菜单,找到“证书”子页面。页面上会显示当前证书的一些信息,比如颁发给、有效期、信任状态,一般会看到一个红色的“不受信任”或类似的提示。

点击“替换为CA签发的证书”按钮,会弹出一个对话框,里面有两个输入框,一个是“证书”,一个是“私钥”。

操作要点如下:

  • 用文本编辑器打开从阿里云下载的.pem文件,把内容完整拷贝,包括开头的-----BEGIN CERTIFICATE-----和结尾的-----END CERTIFICATE-----,全部粘贴到“证书”输入框;
  • 再打开.key文件,同样完整拷贝,包括-----BEGIN PRIVATE KEY-----或-----BEGIN RSA PRIVATE KEY-----和对应的结尾标记,粘贴到“私钥”输入框;
  • 确认没有多余的空格或换行,点击“替换证书”。

整个过程非常快,点击之后ESXi会重新加载证书配置,此时浏览器页面可能会短暂卡顿或者断开,这是正常现象,等十几秒到半分钟再刷新即可。

需要注意的一个细节是,ESXi对私钥格式兼容性比较好,无论是PKCS#1还是PKCS#8格式都能识别。如果粘贴后一直卡在某一步没有反应,优先检查是不是私钥文件拷错了,或者证书和私钥不匹配(比如混用了不同域名的证书和私钥)。

3.2 替换后服务重启与验证

替换完成后,ESXi会重启相关的管理服务进程,整个过程不影响虚拟机的正常运行。很多朋友第一次操作时担心会重启整个主机导致业务中断,其实完全不用担心,这一步只是替换Web管理界面用的证书,和底层虚拟机运行隔离得很清楚。

那怎么确认真的生效了呢?可以从两个角度验证。

浏览器侧,直接访问https://esxi.example.com:8443,地址栏会显示小锁图标,不再有任何警告。如果你之前给这个域名加过浏览器例外,最好先用无痕窗口验证一次,避免旧缓存干扰。

命令行侧,在任意一台能访问到该域名的机器上执行curl -kv https://esxi.example.com:8443,输出结果里有一段Server certificate,会看到证书的subject、issuer和有效期,issuer那一行应该显示的是类似CN=Certificate Authority之类的CA机构信息,而不是CN=VMCA或CN=VMware之类的内容,这样就说明替换成功了。

如果用的是macOS或Linux,也可以直接执行openssl s_client -connect esxi.example.com:8443 -servername esxi.example.com来查看证书链,确认中间证书有没有发全。

4. 绕过几个“换了证书还是报错”的坑

4.1 私钥不匹配和多余内容

第一次操作的常见问题,是浏览器在替换后依然报错,或者在替换时按钮点了没反应。我排查过几个朋友的ESXi,发现超过一半是因为粘贴时末尾多复制了一个换行,或者把证书内容粘贴到了私钥框里,最离谱的一次是有人把阿里云下载的.pem文件内容分成了多段,只拷贝了中间一段,两头标记全丢了。

所以建议养成一个习惯:粘贴前,先把内容放到一个纯文本编辑器里看一眼,确认第一行和最后一行的标记是完整的,中间没有混入其他说明文字。有些操作系统自带的“记事本”对长文本会强制换行,粘贴到ESXi输入框时注意别把换行变成空格,但一般不影响解析。

4.2 ESXi时间不准导致证书链验证失败

这个坑隐蔽但常见。浏览器校验证书时会使用两个时间:一个是系统当前时间,一个是证书的有效期起止时间。证书过期前会报有效期错误,但如果ESXi本身的系统时间离现实时间差距很大,哪怕证书还没过期,浏览器也可能报NET::ERR_CERT_DATE_INVALID,或者提示证书尚未生效。

ESXi主机如果长时间没有配置时间同步,加上硬件时钟有漂移,时间偏差积累到几分钟甚至几小时都很正常。所以在替换证书之前,强烈建议先确认ESXi的系统时间是否正确。可以在Web管理界面的“管理→系统→时间与日期”里查看,最好直接配置NTP服务器,比如阿里云提供的NTP地址ntp.aliyun.com,把时间同步打开,这样一劳永逸地避免时间类问题。

4.3 证书链不完整与格式问题

阿里云下载的Nginx包默认会包含完整的证书链,但仍然见到不少人因为“证书链不完整”被卡住。原因是有些人不是用下载好的PEM文件,而是手动去复制浏览器里的证书内容,或者用了其他服务器格式的证书包(比如Apache格式),导致粘贴进ESXi的证书只有服务器证书,没有中间证书。

ESXi的证书输入框虽然标着“证书”,但实际上要求你填入的是完整的证书链文件,也就是服务器证书和中间证书按顺序拼接后的内容。阿里云下载的Nginx格式的.pem文件,内部通常已经包含了这两部分,所以直接用没有问题。如果你是从别的地方拿到证书,注意检查文件里有没有多个-----BEGIN CERTIFICATE-----块,如果没有,去CA网站上下载对应的中间证书补上。

4.4 常见错误排查对照表

下面这张表是我实际排查问题过程中总结的,基本覆盖了90%的替换失败场景,可以照着逐一检查:

现象可能原因解决办法
浏览器提示NET::ERR_CERT_AUTHORITY_INVALID证书链不完整,浏览器不信任签发证书的CA确认粘贴的是包含完整链的PEM文件,不要只贴服务器证书
浏览器提示NET::ERR_CERT_COMMON_NAME_INVALID访问的域名和证书绑定的域名不一致改用证书对应的域名访问,别用IP
浏览器提示NET::ERR_CERT_DATE_INVALIDESXi系统时间不准确,或证书确实过期配置NTP时间同步,检查证书有效期
浏览器提示ERR_SSL_VERSION_OR_CIPHER_MISMATCHESXi版本过旧,不支持现代TLS配置升级ESXi版本,或查看是否使用了过低的TLS协议
替换证书按钮点了没反应或报错私钥格式错误、粘贴了多余内容、证书和私钥不匹配检查粘贴内容是否完整,确认域名一致,私钥没有密码保护
替换成功但是浏览器还是显示旧证书浏览器缓存了旧的证书信息使用无痕窗口访问,或清除该站点的SSL状态

4.5 被vCenter纳管后的额外操作

如果你的ESXi主机是被vCenter统一纳管的,那情况会多一步。vCenter和ESXi之间有一套证书通信机制,单独替换ESXi的证书后,vCenter可能会在“证书状态”里显示该主机的证书不受信任。

对这个场景,建议先确认你确实需要vCenter纳管。如果只是家里一台或者小团队几台ESXi,完全可以直接通过Web Client登录每台主机管理,不引入vCenter也能用。真要处理vCenter的证书信任,要么在vCenter的证书管理界面里把新证书添加为信任,要么重新配置vCenter的证书。这个过程比单机替换复杂不少,属于另一篇长文的内容了,这里只提醒一下,别担心“为什么我换了证书以后vCenter还有警告”——这是正常现象,单独用Web界面不受影响即可。

5. 证书替换完成之后,我建议顺手做的几件事

5.1 开启NTP自动校时,避免时间偏差埋雷

替换完证书后,第一件推荐做的事是去“管理→系统→时间与日期”里,配置NTP服务器并启用同步。前面说过,ESXi时间不准会导致证书验证失败,其实即使不换证书,时间偏差也会影响虚拟机的日志、定时任务和Kerberos认证。把这些常用NTP地址填进去,点保存就行:

  • ntp.aliyun.com
  • ntp.ntsc.ac.cn
  • pool.ntp.org

配置完成后,等待几分钟,回来看时间是否自动同步到正确值。如果时间还是不对,检查ESXi能否正常访问外网的NTP服务,很多内网环境需要放行UDP 123端口。

5.2 记住免费证书的寿命:三个月续期提醒

阿里云免费SSL证书现在的有效期是3个月,也就是说,你这次费劲配置完,3个月后就得再来一遍。不少人的证书“断供”就断在这——签发的时候兴致勃勃,换完后就不管了,等某个早上打开浏览器看到红锁,才发现证书已经过期很久。

我的做法是,在阿里云控制台的证书列表里,盯住“到期时间”那一栏,设置一个提前两周的日历提醒。另外还有一个命令可以快速查看ESXi当前证书的到期时间,省得每次登Web界面:

openssl s_client -connect esxi.example.com:8443 -servername esxi.example.com 2>/dev/null | openssl x509 -noout -dates

这个命令会输出证书的notBefore和notAfter,方便你快速判断还剩下多少天。你也可以把它写成一个cron定时任务,每个月跑一次,输出到日志,自然就不会忘记续期了。

5.3 证书与配置文件的备份习惯

替换完证书之后,建议把阿里云下载的.pem和.key文件妥善保存。不要只放在ESXi主机的下载文件夹里,因为ESXi的本地存储一旦出故障,这些文件很可能就跟着丢了。正确的做法是:

  • 在本地电脑建立一个专门的证书目录,按域名和日期命名,比如esxi.example.com_20250313;
  • 把PEM和KEY文件复制进去,顺便把“申请日期、到期日期、备注”写在一个readme.txt里;
  • 给这个目录做一次加密压缩,备份到云盘或U盘。

这样做的好处是,下次续期如果还是同一个域名、同一套私钥逻辑,你可以快速对比新旧证书差异,而且万一ESXi系统重装,手里的证书备份能让恢复流程短很多。

最后再分享一个我的习惯:每次替换完证书,我会顺手在浏览器里把旧的ESXi书签删掉,重新用https://域名:端口的完整地址存一遍。别小看这个动作,很多人证书换好之后,书签栏里存的还是老早用IP地址保存的入口,每次都忍不住点IP访问,然后又陷入“为什么还是不安全”的困惑里。把域名访问固化成一个肌肉记忆,这台ESXi的HTTPS体验才算真的舒服了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询