跳转到内容

证书:自签名、导入与 Let's Encrypt ​

完成后,你能在 OMV 里准备好一张给 Web 界面(以及 FTP 等服务)用的 SSL 证书,知道浏览器为什么报警告,以及换证书的完整步骤。

证书在 OMV 里的位置 ​

系统 → 证书(System → Certificates)下有两个页面:

页面用途
SSL给 系统 → 工作台(System → Workbench)里设置的 Web 界面、FTP 服务和部分插件做 HTTPS/TLS。本篇主要讲它
SSHSSH 密钥对,给 Rsync 客户端任务和部分插件做远端认证,不是登录 OMV 用的

OMV 把证书存在配置数据库里,应用配置时由 Salt 写成文件:证书在 /etc/ssl/certs/openmediavault-<UUID>.crt,私钥在 /etc/ssl/private/openmediavault-<UUID>.key(官方文档写的是 .cert,以 Salt 源码的 .crt 为准)。这些文件会被重新生成,不要手改。

创建自签名证书 ​

  1. 进入 系统 → 证书 → SSL(System → Certificates → SSL),点工具栏的 新建 | 导入 菜单,选创建(Create)。
  2. 填写表单:
字段默认值说明
密钥长度(Key size)4096b只有 2048b 和 4096b 两个选项
有效时间(Period of validity)1 年(365 天)可选 1 天到 25 年。到期后浏览器会报错,所以要选长一点,或者记得换
通用名(Common Name)NAS 的主机名填你在浏览器地址栏里输入的名字或 IP。它会写进证书的 SAN:是 IP 就写成 IP 地址,否则写成 DNS 名称
组织名称、组织单位、城市、州/省、国家空可选,家用可以留空
Email空填了会一并写进 SAN
标签(Tags)空留空则自动用证书主题。下拉框里显示的就是它,建议写成有意义的名字,如 nas-webui
  1. 点创建,再点黄色提示条上的应用,证书文件才会落盘。应用之前,显示详情 会报错,这是预期行为。

8.5.12 起,自签名证书按「叶子证书」创建:CA:FALSE,密钥用途为数字签名和密钥加密,扩展用途为服务器认证,并且不再允许创建小于 2048 位的 RSA 密钥。更早创建的证书不会被改写,想要新格式就重新创建。

通用名只能写一个

证书的 SAN 里只有你填的这一个名字。如果既用 nas.local 又用 IP 访问,只有其中一个能匹配,另一个仍然报警告。需要多个名字,就在别处用 OpenSSL 或 CA 生成带多个 SAN 的证书,再导入。

浏览器为什么报警告 ​

自签名证书没有被任何机构担保,浏览器默认不信任它。局域网内自用的常见做法:

  • 打开证书详情,把浏览器显示的指纹和 OMV 里的对一下:显示详情 里有 SHA-1 和 SHA-256 指纹,也可以在列表里把隐藏的指纹列打开。一致就继续访问,或者在每台设备上手动信任一次。
  • 换成正规 CA 签发的证书,见下文。

怎么把证书加入系统或浏览器的信任列表,各平台做法不同,本站不展开。

导入已有证书 ​

系统 → 证书 → SSL → 新建 | 导入 → 导入(Import):

字段说明
私钥(Private key)粘贴 PEM 格式的 RSA 或 ECC 私钥(也可以选 .key、.pem 文件)
证书(Certificate)粘贴 PEM 格式的证书。CA 签发的证书要连中间证书一起粘贴(常见文件名 fullchain.pem),否则部分客户端校验不过
标签(Tags)必填

OMV 会检查证书是否有效,以及私钥和证书是否匹配,不匹配会报错。导入后同样要应用。

私钥等于这台机器的身份,不要通过聊天工具或邮件传递,用完删除本地副本。

换证书:完整步骤 ​

SSL 页面没有「编辑」按钮,换证书等于「导入新的、切换引用、删旧的」:

  1. 创建或导入新证书,应用。
  2. 进入 系统 → 工作台 → 设置(System → Workbench → Settings),把证书换成新证书,保存并应用。
  3. FTP 等其他引用了旧证书的服务也换掉。列表的引用(Referenced)列打勾,说明这张证书还在被使用。
  4. 旧证书的引用不再打勾后,才能选中它点删除。仍被引用时,删除按钮不可用,强行删除也会被后端拒绝。

Let's Encrypt(注意时效) ​

官方文档对 Let's Encrypt 只说了一句:把 fullchain.pem 和 privkey.pem 的内容分别粘贴进导入表单,不需要转换。OMV 8.5.12 的源码里没有任何 ACME 自动申请或续期的功能,所以在 OMV 上它是手动导入。

手动导入撑不住越来越短的有效期

按 Let's Encrypt 官方公告,截至 2026-10-23:默认证书有效期是 90 天;2027-02-10 起默认变成 64 天;2028-02-16 起变成 45 天。官方建议用自动化方式续期,并配上续期失败的监控,不要靠手动。而在 OMV 里续期要把上面的四步走一遍,每一两个月就得做一次,很难长期坚持。

实际可行的做法,按推荐顺序:

做法适合代价
保持自签名,只在局域网或 VPN 内访问家用,没有域名每台设备信任一次,或忍受警告
用反向代理容器(Nginx Proxy Manager、Caddy、Traefik)自动申请和续期证书,应用走它的 HTTPS有域名,要从外部访问某些应用多一个容器;OMV 自己的管理界面不要经它暴露到公网,见远程访问
在别处申请,手动导入 OMV一定要让 OMV 界面带正规证书每次续期都要手动操作

用 ACME 客户端申请时,如果不想在路由器上开放 80 或 443,可以改用 DNS 验证(DNS-01),具体以你所用客户端的文档为准。反向代理容器的搭法见反向代理与 HTTPS。

到期提醒 ​

OMV 每天运行一次检查:/etc/ssl/certs/openmediavault-*.crt 里有证书在 7 天内到期时,发一封标题为 A SSL certificate expires in N days 的邮件。前提是已配置邮件通知(见配置邮件通知),且 系统 → 通知 → 事件(System → Notification → Events)里的杂项事件是开着的。7 天并不宽裕,自己在日历上提前设个提醒更稳。

SSH 页面 ​

系统 → 证书 → SSH(System → Certificates → SSH)管理 SSH 密钥对:

  • 创建或导入的密钥对存在配置数据库里,界面只显示公钥(点编辑可以看到),私钥不会出现在界面上。
  • 公钥可以复制到远端服务器的 authorized_keys,列表上的安装按钮可以直接把它装到远端(要填主机名、端口、用户名和密码)。
  • 它用在 服务 → Rsync → 任务(Services → Rsync → Tasks)的客户端认证,以及 ZFS 复制等插件功能里。登录 OMV 本机的 SSH 公钥不在这里,而在 用户 → 用户(Users → Users)里每个用户的 SSH 公钥 字段,见 SSH 加固。

检查结果 ​

  1. 系统 → 证书 → SSL 列表里能看到新证书,应用之后点 显示详情,核对主题、SAN 和有效期。
  2. 在 OMV 的 shell 里确认文件已落盘,并读出有效期和 SAN:
sh
# 在 OMV 的 shell 里,以 root 身份,只读
ls /etc/ssl/certs/openmediavault-*.crt
openssl x509 -in /etc/ssl/certs/openmediavault-<UUID>.crt -noout -subject -dates -ext subjectAltName

<UUID> 取自上一条命令列出的文件名。

  1. 在 系统 → 工作台 → 设置 选中该证书并应用后,用 https://<NAS 的 IP> 访问,浏览器里查看的证书应与它一致。

常见问题 ​

导入时提示 Private key does not correspond to the certificate。 私钥和证书不是一对,检查是不是粘贴错了文件,或者把旧私钥配了新证书。

导入时提示 Invalid certificate 或 Invalid private key。 内容不是有效的 PEM。确认以 -----BEGIN 开头,没有多余的空行或被邮件客户端改过的换行。

浏览器提示通用名不匹配(ERR_CERT_COMMON_NAME_INVALID)。 你访问用的名字或 IP 不在证书的 SAN 里。重新创建证书,通用名填你实际使用的那个。

换了证书,浏览器里还是旧的。 确认应用已经点过,并关闭所有打开着 OMV 的标签页后重新访问。

证书删不掉。 它还在被引用,先在引用它的服务里换成别的证书并应用。

参考资料 ​

  • OMV 文档:证书。
  • Let's Encrypt:From 90 to 45 days(证书有效期缩短时间表)。
  • OMV 源码:certificatemgmt.inc(创建参数与校验)、ssl-certificate-form-page.component.ts(表单默认值)、certificates/ssl.sls(落盘路径)、openmediavault-check_ssl_cert_expiry(到期检查)。
  • OMV 8.5.12 更新记录:自签名证书改为叶子证书,不再允许小于 2048 位的 RSA 密钥。

OpenMediaVault 非官方中文使用指南,与 openmediavault 项目及其开发者无隶属关系。