Highcharts node-export-server离线模式SSL报错及本地导出问题
解决方案:修复Debian 10上Highcharts node-export-server的SSL错误并实现纯本地导出
一、解决libssl_conf.so相关SSL错误
该错误源于Debian 10的OpenSSL默认配置与node-export-server依赖的无头浏览器(PhantomJS/Puppeteer)兼容性冲突,可通过以下方式修复:
临时修复(单次生效)
执行命令前先指定环境变量:
OPENSSL_CONF=/dev/null highcharts-export-server --instr '{"title": {"text": "My Chart"}, "series": [{"data": [1, 2, 3]}]}' --type png
永久修复(全局生效)
编辑/etc/environment文件,添加:
OPENSSL_CONF=/dev/null
保存后执行source /etc/environment使配置立即生效,或重启服务器。
二、实现纯本地导出(禁用远程资源请求)
你设置的exporting.fallbackToExportServer是前端Highcharts配置,后端node-export-server不会读取该参数。要实现纯本地导出,需确保所有Highcharts依赖脚本从本地加载:
准备本地Highcharts资源
从Highcharts官网下载完整脚本包,将highcharts.js、highcharts-more.js(按需)等文件上传到服务器本地目录(如/opt/highcharts/)。调用时指定本地资源路径
使用--resources参数指定本地脚本的绝对路径,多文件用逗号分隔:
OPENSSL_CONF=/dev/null highcharts-export-server --instr '{"title": {"text": "My Chart"}, "series": [{"data": [1, 2, 3]}]}' --type png --resources '/opt/highcharts/highcharts.js'
- 可选:通过配置文件持久化设置
创建export-config.json配置文件:
{ "resources": ["/opt/highcharts/highcharts.js"], "allowCodeExecution": false }
调用时指定配置文件:
OPENSSL_CONF=/dev/null highcharts-export-server --config export-config.json --instr '{"title": {"text": "My Chart"}, "series": [{"data": [1, 2, 3]}]}' --type png
三、额外依赖排查
确保服务器已安装node-export-server所需的系统依赖:
apt-get install libssl1.1 libx11-6 libxext6 libxrender1 libfontconfig1
同时更新node-export-server到最新稳定版:
npm install -g highcharts-export-server@latest
内容的提问来源于stack exchange,提问作者Mathieu
相关产品推荐
相关产品推荐

