跳到主要内容

配置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格式