跳到主要内容

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

可以向 n8n 添加自己的证书颁发机构(CA)或自签名证书。这样可以只信任指定的 SSL 证书,避免信任所有无效证书带来的潜在安全风险。

信息

功能可用范围

自 n8n 1.42.0 起,支持使用自己的证书颁发机构或自签名证书。

要使用此功能,请将证书放入一个文件夹,并将其挂载到容器中的 /opt/custom-certificates。映射到 /opt/custom-certificates 的外部路径必须允许容器写入。

Docker ​

以下示例假设名为 pki 的文件夹包含证书,并位于执行命令的目录中,或与 Docker Compose 文件位于同一目录。

Docker CLI ​

使用 CLI 时,可以在命令行中使用 -v 参数:

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

Docker Compose ​

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

还需要为导入的证书设置正确权限。容器运行后,可以执行以下操作,假设容器名称为 n8n:

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

自定义信任存储的证书要求 ​

支持的证书类型:

  • 根 CA 证书:由用于签发其他证书的证书颁发机构提供。信任根 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。

相关资源 ​

本文为社区中文翻译。查看对应英文原文