N8N中文教程
部署托管/Configuration/Configuration_examples

配置 n8n 使用您自己的证书颁发机构或自签名证书#

您可以将自定义的证书颁发机构(Certificate Authority, CA)或自签名证书添加到 n8n 中。这意味着您可以选择性地信任特定的 SSL 证书,而不是信任所有无效证书——后者存在潜在的安全风险。 从版本 1.42.0 起引入 此功能在版本 1.42.0 及以上版本中可用。

要使用此功能,您需要将证书文件放入一个目录,并将该目录挂载到容器内的 /opt/custom-certificates 路径下。映射到 /opt/custom-certificates 的外部路径必须对容器具有写权限。

Docker#

以下示例假设您有一个名为 pki 的文件夹,其中包含您的证书,该文件夹位于执行命令的当前目录下,或与您的 Docker Compose 文件同级。

Docker CLI#

使用命令行时,可以通过 -v 参数挂载卷:

docker \
  -v ./pki:/opt/custom-certificates \
  -p 5678:5678 \
  --name n8n \
  docker.n8n.io/n8nio/n8n

Docker Compose#

name: n8n
services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n
    ports:
      - 5678:5678
    volumes:
      - ./pki:/opt/custom-certificates

您还应在容器运行后为导入的证书设置正确的权限(假设容器名称为 n8n):

docker exec n8n chown -R 1000:1000 /opt/custom-certificates

自定义信任库的证书要求#

支持的证书类型:

  • 根 CA 证书(Root CA Certificates):由证书颁发机构签发的证书,用于签署其他证书。信任此类 CA 后,所有由其签发的证书都将被自动信任。
  • 自签名证书(Self-Signed Certificates):服务器自行创建并签名的证书。信任此类证书后,仅会接受来自该特定服务器的连接。

必须使用 PEM 格式:

  • 基于文本的格式,包含 BEGIN/END 标记
  • 支持的文件扩展名:.pem.crt.cer
  • 仅需包含公钥证书(无需私钥)

例如:

-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAKoK/heBjcOuMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
[base64 encoded data]
-----END CERTIFICATE-----

---|---
系统不接受以下格式的文件:
  * DER/二进制格式文件
  * PKCS#7 (.p7b) 文件
  * PKCS#12 (.pfx, .p12) 文件
  * 私钥文件(private key files)
  * 请在使用前将这些格式转换为 PEM 格式。