Skip to main content

在 Ubuntu 上安装 HashiCorp Vault

本指南介绍如何在 Ubuntu 24.04 LTS 服务器上安装和配置 HashiCorp Vault。Vault 用于集中、安全地管理密钥(API 密钥、密码、TLS 证书)。

现代应用依赖各类密钥:API 密钥、数据库密码、TLS 证书、加密密钥。硬编码或明文存储存在风险。Vault 提供安全存储、动态凭据生成、加密即服务及细粒度访问控制。

订购服务器

要托管 Vault 实例,HostMyServers 提供多种方案:

前提条件

  • 以 root 或具有 sudo 权限的用户进行 SSH 访问
  • Ubuntu 24.04 LTS 64 位系统
  • 指向服务器 IP 的 DNS A 记录(用于 Let's Encrypt)
  • 端口 8200(Vault HTTPS)和 80(Certbot,临时)可访问

配置要求

组件最低推荐
内存512 MB1-2 GB
CPU1 核2 核
存储5 GB10 GB
网络100 Mbps1 Gbps
默认端口

Vault 在 8200 端口上通过 HTTPS 监听。Web 界面和 API 使用该端口。

连接服务器

通过 SSH 连接 Ubuntu 服务器(默认端口 22,或自定义端口 / PEM 密钥):

ssh 用户@服务器IP地址

系统更新

安装 Vault 前更新软件包列表:

sudo apt update
sudo apt upgrade -y

从 HashiCorp 仓库安装 Vault

HashiCorp 提供官方 APT 仓库以安装最新稳定版 Vault。安装依赖、添加 GPG 密钥和仓库后执行:

sudo apt update
sudo apt install -y vault

验证:vault --version。可选:vault -autocomplete-installexec $SHELL

防火墙配置

开放 8200 和 80 端口并重载 UFW。80 端口临时供 Certbot 使用。

Let's Encrypt TLS 证书

安装 Certbot,为域名(如 vault.您的域名.com)申请证书,将 fullchain.pem 和 privkey.pem 复制到 /opt/vault/tls/,设置属主为 vault:vault 和权限 600。在 /etc/letsencrypt/renewal-hooks/deploy/vault.sh 中创建续期脚本,更新证书并重载 Vault。

替换域名

请将所有命令和文件中的 vault.您的域名.com 替换为您的实际域名。

Vault 生产配置

备份 /etc/vault.d/vault.hcl,然后创建配置:ui = truestorage "file"(path /opt/vault/data)、listener "tcp" 监听 0.0.0.0:8200 并指向 cert.pem 与 key.pem、api_addrcluster_addr 使用您的域名。启用并重启服务:sudo systemctl enable vaultsudo systemctl restart vault

CLI 环境变量

echo 'export VAULT_ADDR="https://vault.您的域名.com:8200"' >> ~/.bashrc
source ~/.bashrc

检查:vault status(初始化前:Initialized: false,Sealed: true)。

初始化与解封 (unseal)

Vault 以密封状态启动。初始化会生成主密钥、5 个解封密钥(需 3 个,Shamir)和 root token。

保存密钥

解封密钥和 root token 仅显示一次。请妥善保管。丢失后数据将无法访问。

执行 vault operator init,保存 5 个解封密钥和 Initial Root Token。然后三次执行 vault operator unseal,每次输入一个密钥。成功后显示 Sealed: false。登录:vault login(输入 root token)。

访问 Web 界面

在浏览器中打开 https://vault.您的域名.com:8200,选择 Token 方式,输入 root token。

常用命令

命令说明
vault statusVault 状态
vault operator unseal提供解封密钥
vault login使用 token 登录
sudo systemctl status vault服务状态
sudo systemctl restart vault重启 Vault

文件结构

路径说明
/etc/vault.d/vault.hcl配置文件
/opt/vault/data/Vault 数据(加密)
/opt/vault/tls/TLS 证书与密钥

故障排除

  • 服务无法启动:查看 journalctl -u vault.service,检查 /opt/vault 权限和配置语法。
  • TLS 错误:确认 cert.pem 和 key.pem 存在且属主正确,执行 certbot renew --dry-run
  • 重启后再次密封:需再次提供 3 个解封密钥。自动化解封见 Vault 文档(auto-unseal)。

参考