VPS服务器Ubuntu系统中Strapi Admin面板无法加载求助
解决Strapi管理面板加载失败(digest读取错误)问题
问题根源
你遇到的Cannot read properties of undefined (reading 'digest')错误,核心原因是Strapi生产环境默认强制要求HTTPS访问管理面板,HTTP环境下认证流程的加密逻辑会失效,导致该报错。
解决方案
一、生产环境:配置HTTPS(推荐)
这是彻底解决问题的正规方案,步骤如下:
- 安装Certbot获取免费SSL证书
sudo apt update && sudo apt install certbot sudo certbot certonly --standalone -d your-domain.com - 修改Strapi服务器配置文件(
config/server.js或config/env/production/server.js):module.exports = ({ env }) => ({ host: env('HOST', '0.0.0.0'), port: env.int('PORT', 1337), url: env('URL', 'https://your-domain.com'), ssl: { key: env('SSL_KEY', '/etc/letsencrypt/live/your-domain.com/privkey.pem'), cert: env('SSL_CERT', '/etc/letsencrypt/live/your-domain.com/fullchain.pem'), }, }); - 修改管理面板配置文件(
config/admin.js):module.exports = ({ env }) => ({ auth: { secret: env('ADMIN_JWT_SECRET', 'your-random-32-character-secret'), }, url: '/admin', forceAdminPanelSSL: true, }); - 重启Strapi服务,访问
https://your-domain.com/admin即可正常加载面板。
二、测试环境:临时允许HTTP访问
若仅用于测试,可关闭HTTPS强制检查:
- 修改
config/admin.js:module.exports = ({ env }) => ({ auth: { secret: env('ADMIN_JWT_SECRET', 'your-random-secret-key'), }, url: '/admin', forceAdminPanelSSL: false, }); - 修改
config/server.js设置正确的HTTP地址:module.exports = ({ env }) => ({ host: env('HOST', '0.0.0.0'), port: env.int('PORT', 1337), url: env('URL', 'http://your-server-ip:1337'), }); - 重启Strapi,访问
http://your-server-ip:1337/admin即可解决报错。
额外检查项
- 确保服务器防火墙开放Strapi端口(默认1337):
sudo ufw allow 1337/tcp - 确认
ADMIN_JWT_SECRET环境变量已设置,缺失该密钥会直接导致认证失败。
内容的提问来源于stack exchange,提问作者Jakub Zalewski
相关产品推荐
相关产品推荐

