bg-tutorials

如何在 Proxmox 上安装 SSL 证书

本教程将向您展示如何在 Proxmox Virtual Environment (Proxmox VE) 上安装 SSL 证书,以便 Web 界面通过受信任的 HTTPS 提供服务,而不是使用默认的自签名证书。您还会找到购买适合 Proxmox 的经济实惠 SSL 证书的最佳去处。

如果您已经生成了 CSR 代码并收到了 SSL 文件,请直接跳转到安装说明。

在 Proxmox 上生成 CSR 代码

要从受信任的证书颁发机构(CA)获取 SSL 证书,您必须先生成 CSR 代码并将其发送给证书提供商。CSR 代表证书签名请求(Certificate Signing Request):这是一段编码文本,包含您的联系信息,例如域名和公司身份,以及将嵌入证书中的公钥。

您有两种选择:

  1. 使用我们的CSR 生成器自动生成 CSR。
  2. 按照我们关于如何在 Proxmox 上创建 CSR的分步教程操作。

在结账时将 CSR 提交给证书颁发机构。一旦 CA 验证了您的请求并签发了证书,请继续下面的安装步骤。

在 Proxmox 上安装 SSL 证书

在您的 CA 签署证书并通过电子邮件发送 SSL 文件后,您就可以开始安装了。Proxmox VE 会用您的自定义证书替换默认的自签名证书。您无需手动编辑 Web 服务器配置或重启 Apache/Nginx,因为 Proxmox 管理着自己的 pveproxy 服务。

开始之前

  • 准备好来自 CA 的已签名 SSL 文件。
  • 确保您的私钥未受密码保护;Proxmox 不接受加密的密钥。
  • 您需要按节点应用证书。在集群中,请对每个您想要保护的节点重复这些步骤。

这些步骤适用于 Proxmox VE 7、8 以及当前的 9.x 版本系列。在这些版本中,证书安装流程是相同的。

第一步:准备安装文件

下载 CA 发送给您的 ZIP 压缩包,并在您的计算机上解压。要在 Proxmox 上激活 SSL,您正好需要两个文件:

  • fullchain.pem:您的服务器证书加上所有中间证书(不包括根证书),合并为单个 PEM 文件。
  • private-key.pem:您的 PEM 格式私钥,无密码。

根据您的 CA 不同,您可能会收到作为单独文件的根证书和中间证书,或者它们被打包在一个 .ca-bundle 文件中。对于 Proxmox,您必须将服务器证书和中间证书合并成一个 fullchain.pem 文件。打开一个纯文本编辑器,将每个证书的内容粘贴到一个文件中。

顺序很重要。完整证书链文件必须以您的服务器(叶子)证书开头,后跟中间证书。每个证书块从 —–BEGIN CERTIFICATE—– 行开始,到 —–END CERTIFICATE—– 行结束,如下所示:

-----BEGIN CERTIFICATE-----
(your server / leaf certificate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(intermediate certificate)
-----END CERTIFICATE-----

第二步:通过 Proxmox 图形界面上传证书

Web 界面是最简单的方法,尤其是当您只管理一个节点时:

  1. 登录到 Proxmox Web 界面。
  2. 在左侧面板中,展开 Datacenter,选择您的节点,然后转到 System → Certificates。
  3. 在 pveproxy-ssl.pem 下,点击 Upload Custom Certificate。
  4. 将您的 fullchain.pem 粘贴(或上传)到 Certificate Chain 字段中,将您的 private-key.pem 粘贴到 Private Key 字段中。
  5. 点击 Upload。当系统提示重启 Web 服务时,确认操作。Proxmox 将重新加载 pveproxy 并开始提供您的新证书。

重启后,在浏览器中重新加载 Web 界面。您现在应该看到您的受信任证书,而不是默认的自签名证书。

替代方法:通过命令行安装证书

如果您更喜欢使用命令行,请通过 SSH(例如使用 scp)将您的 fullchain.pem 和 private-key.pem 复制到节点,然后使用内置的 pvenode 工具。它会在安装证书和密钥之前验证两者是否匹配,并可以一步完成重启代理服务:

pvenode cert set fullchain.pem private-key.pem --force --restart

–force 参数会覆盖任何现有的自定义证书,而 –restart 会重新加载 Web 服务,使更改立即生效。

您也可以手动放置这些文件。Proxmox 会从 /etc/pve/local/pveproxy-ssl.pem 读取活动节点的证书,从 /etc/pve/local/pveproxy-ssl.key 读取其密钥(其中 /etc/pve/local 是指向当前节点目录的符号链接)。将您的文件复制到对应位置,并根据您自己的实际情况调整源路径:

cp fullchain.pem /etc/pve/local/pveproxy-ssl.pem
cp private-key.pem /etc/pve/local/pveproxy-ssl.key

然后重启 Web 界面以加载新证书:

systemctl restart pveproxy

您应该会看到一条日志消息,确认 Proxmox 现在正在使用您的新证书。

替代方法:使用 Proxmox 内置的 ACME(Let’s Encrypt)获取免费证书

Proxmox VE 内置了原生 ACME 客户端,因此您无需购买证书或运行外部工具,即可签发并自动续期免费的 Let’s Encrypt 证书。当您的节点具有公共 DNS 名称时(HTTP-01 验证方式需要从互联网访问 80 端口),或者当您可以使用受支持的 DNS 提供商进行 DNS-01 验证时,此方法非常理想。

  1. 转到 Datacenter → ACME,在 Accounts 下注册一个账户(选择 Let’s Encrypt 目录并接受条款)。ACME 账户只需在数据中心级别配置一次。
  2. 打开您的节点 → System → Certificates,在 ACME 下为该节点添加域名,并选择验证类型(HTTP 或 DNS)。
  3. 点击 Order Certificates Now。Proxmox 会完成验证挑战,安装证书,并在到期前自动续期。

测试您的 SSL 安装

安装证书后,快速检查是否存在错误和漏洞。最快的方法是在浏览器中打开 Proxmox Web 界面,确认锁形图标显示的是有效、受信任的证书,且域名和到期日期正确。

通过命令行,您可以准确读取该节点在其默认端口(8006)上提供的内容:

echo | openssl s_client -connect your-proxmox-host:8006 -servername your-proxmox-host 2>/dev/null | openssl x509 -noout -issuer -subject -dates

这将打印出实际证书的颁发者、主题和有效日期。如需完整的外部扫描,请参阅我们关于最佳 SSL Checker 的指南,以检查您的安装情况。

在哪里购买适合 Proxmox 的最佳 SSL 证书?

购买 SSL 证书时,请综合考虑验证类型、价格和客户服务。在 SSL Dragon,我们提供业内最广泛的 SSL 证书种类之一,价格极具竞争力,并提供专属支持。每张证书均由受信任的证书颁发机构签发,并完全兼容 Proxmox Virtual Environment。无论您需要经济实惠的域名验证(Domain Validation)证书,还是高级扩展验证(Extended Validation)产品,我们都能满足您的需求。

常见问题解答

Proxmox 将其 SSL 证书存储在哪里?

每个节点从 /etc/pve/local/pveproxy-ssl.pem 提供其自定义证书,并从 /etc/pve/local/pveproxy-ssl.key 提供匹配的密钥。/etc/pve/local 路径是指向该节点自身目录(位于 /etc/pve/nodes/<node>/ 下)的符号链接。如果没有自定义证书,Proxmox 会回退使用其自签名的 pve-ssl.pem。

安装证书后如何重启 Proxmox Web 界面?

重启提供图形界面的代理服务:
systemctl restart pveproxy
如果您是通过图形界面上传,或运行了 pvenode cert set ... --restart,Proxmox 会自动为您重启该服务,因此您无需再执行此命令。

为什么 Proxmox 不接受我的私钥?

最常见的原因是密钥受密码保护(已加密);Proxmox 只接受未加密的 PEM 密钥。请先使用 openssl rsa -in private-key.pem -out private-key.pem 移除密码短语。同时确认密钥确实与您的证书匹配,且证书是正确的完整证书链(叶子证书在前,然后是中间证书,不包含根证书)。

Proxmox 能否自动获取免费的 Let’s Encrypt 证书?

可以。Proxmox VE 内置了 ACME 客户端。在 Datacenter → ACME 下注册一个 Let’s Encrypt 账户,在 [node] → System → Certificates 下添加您的域名和验证类型,然后申请证书。Proxmox 会安装该证书,并在到期前自动续期,无需手动上传。

我是否需要在集群中的每个节点上都安装证书?

是的。自定义证书是按节点存储的,因此您需要通过各节点自己的主机名连接到其各自的 Web 界面。对于您想通过受信任的 HTTPS 提供服务的每个节点,都要重复上传操作(或 ACME 申请流程)。

总结

在 Proxmox VE 上安装 SSL 证书,归根结底就是构建一个完整证书链 PEM 文件,通过 System → Certificates(或在命令行中使用 pvenode cert set)连同您未加密的密钥一起上传,然后让 Proxmox 重启其 pveproxy 服务。如果想要更省心的设置方式,内置的 ACME 客户端可以签发并自动续期免费的 Let’s Encrypt 证书。还没有证书?浏览我们的 SSL 证书。

立即订购 SSL 证书, 可节省 10% 的费用!

快速发行, 强大加密, 99.99% 的浏览器信任度, 专业支持和 25 天退款保证. 优惠券代码 SAVE10

龙飞行的详细图像
撰写人

I've been building and managing websites for over 20 years, with a heavy focus on the technical side of the cybersecurity, VPN, and SaaS industries. I know how sites are built from the ground up, which means I know how to secure them. Here at SSL Dragon, I write about web architecture, encryption, and keeping your infrastructure safe.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.