配置 TLS 对于 Trilium 中的服务器安装至关重要。本指南详细介绍了在 Trilium 本身中设置 TLS 的步骤。
对于更强大的解决方案,请考虑将 TLS 终止与反向代理一起使用(推荐,例如 Nginx)。您可以按照这样的指南进行此类设置。
获取 TLS 证书
获取 TLS 证书有两种选择:
建议:获取由根证书颁发机构签名的 TLS 证书。对于个人使用,Let's Encrypt 是一个绝佳的选择。它是免费的、自动化的、直接的。Certbot 可以促进自动 TLS 设置。
生成自签名证书。不建议使用此选项,因为将证书导入到连接到服务器的所有计算机中会更加复杂。
修改config.ini
获得证书后,修改数据目录中的文件以配置 Trilium 以使用它:config.ini
[Network]
port=8080
# Set to true for TLS/SSL/HTTPS (secure), false for HTTP (insecure).
https=true
# Path to the certificate (run "bash bin/generate-cert.sh" to generate a self-signed certificate).
# Relevant only if https=true
certPath=/[username]/.acme.sh/[hostname]/fullchain.cer
keyPath=/[username]/.acme.sh/[hostname]/example.com.key
您还可以查看配置文件,将所有值作为环境变量提供。例如,您可以使用环境变量配置 TLS:config.ini
export TRILIUM_NETWORK_HTTPS=true
export TRILIUM_NETWORK_CERTPATH=/path/to/cert.pem
export TRILIUM_NETWORK_KEYPATH=/path/to/key.pem
上面的示例显示了如何在使用 Let's Encrypt 的 ACME 实用程序生成证书的环境中进行设置。您的路径可能不同。对于 Docker 安装,请确保这些路径位于 Docker 容器可访问的卷或其他目录中,例如 。/home/node/trilium-data/[DIR IN DATA DIRECTORY]
配置后,重新启动 Trilium 并使用“https”访问主机名。config.ini
自签名证书
如果您选择对服务器实例使用自签名证书,请注意,默认情况下,桌面实例不会信任它。
要绕过此设置,请通过设置以下环境变量(对于 Linux)来禁用证书验证:
export NODE_TLS_REJECT_UNAUTHORIZED=0
trilium
Trilium 提供了在此模式下启动的脚本,例如适用于 Windows。trilium-no-cert-check.bat
警告:禁用 TLS 证书验证是不安全的。只有在您完全理解其含义时才继续。