配置n8n使用自定义证书颁发机构或自签名证书#
您可以将自定义证书颁发机构(CA)或自签名证书添加到n8n。这意味着您可以信任特定SSL证书,而不必信任所有无效证书(后者可能存在安全风险)。
自1.42.0版本新增
此功能适用于1.42.0及更高版本。
使用此功能时,需要将证书文件放置于某个文件夹中,并将该文件夹挂载到容器的/opt/custom-certificates目录。映射到/opt/custom-certificates的外部路径必须具有容器可写权限。
Docker#
以下示例假设您在命令运行目录或docker compose文件同级目录下,存在一个包含证书文件的名为pki的文件夹。
Docker CLI#
使用CLI时,可通过命令行添加-v参数:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v ./pki:/opt/custom-certificates \
docker.n8n.io/n8nio/n8n
Docker Compose#
name: n8n
services:
n8n:
volumes:
- ./pki:/opt/custom-certificates
container_name: n8n
ports:
- 5678:5678
image: docker.n8n.io/n8nio/n8n
同时,您还需要为导入的证书设置正确的权限。可以在容器运行后执行以下操作(假设容器名称为 n8n):
docker exec --user 0 n8n chown -R 1000:1000 /opt/custom-certificates
自定义信任库的证书要求#
支持的证书类型:
- 根CA证书:来自证书颁发机构的证书,用于签署其他证书。信任此类证书即接受由该CA签署的所有证书。
- 自签名证书:由服务器自行创建并签署的证书。信任此类证书仅接受与该特定服务器的连接。
必须使用PEM格式:
- 基于文本的格式,包含BEGIN/END标记
- 支持的文件扩展名:
.pem,.crt,.cer - 包含公共证书(无需私钥)
例如:
-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAKoK/heBjcOuMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
[base64 encoded data]
-----END CERTIFICATE-----
本系统不接受:
- DER/二进制格式文件
- PKCS#7 (.p7b) 文件
- PKCS#12 (.pfx, .p12) 文件
- 私钥文件
- 使用前请将这些格式转换为PEM格式