POSTFIX-TLS(1)                                                  POSTFIX-TLS(1)

名称
       postfix-tls - Postfix TLS 管理工具

概述
       postfix tls 子命令

描述
       "postfix tls 子命令" 功能用于在 Postfix SMTP 客户端或服务器中启用机会性 TLS,
       并管理 Postfix SMTP 服务器的私钥和证书。

       支持以下子命令:

       enable-client [-r 随机源]
              当所有 SMTP 客户端 TLS 设置均为默认值时,启用 Postfix SMTP 客户端的机会性 TLS。
              否则仅建议参数设置而不做实际修改。

              通过 随机源 参数可更新 tls_random_source 配置参数值
              (通常为 /dev/urandom)。设备路径需添加 dev: 前缀,
              EGD 套接字路径需添加 egd: 前缀。

              另请参阅 all-default-client 子命令。

       enable-server [-r 随机源] [-a 算法] [-b 位数] [主机名...]
              创建新的私钥和自签名服务器证书,
              当所有 SMTP 服务器 TLS 设置均为默认值时,启用 Postfix SMTP 服务器的机会性 TLS。
              否则仅建议参数设置而不做实际修改。

              随机源 参数与 enable-client 相同,
              其余选项与下文 new-server-key 一致。

              另请参阅 all-default-server 子命令。

       new-server-key [-a 算法] [-b 位数] [主机名...]
              创建新的私钥和自签名服务器证书但不部署。
              记录并显示部署新密钥和对应证书所需的命令,
              同时输出获取 CA 证书或更新 DNS 所需的 CSR 或 TLSA 记录生成命令。

              算法 默认为 rsa位数 默认为 2048。
              选择 ecdsa 算法 时,位数 应为 EC 曲线名称
              (默认为 secp256r1,即 prime256v1)。
              建议仅使用 secp256r1secp384r1secp521r1 曲线,
              其他曲线可能缺乏广泛兼容性。DSA 密钥已过时且不受支持。

              注意:ECDSA 需要 OpenSSL 1.0.0 或更高版本支持。
              并非所有客户端都支持 ECDSA,建议同时部署 RSA 和 ECDSA 证书:
              ECDSA 用于兼容客户端,RSA 用于其他情况。
              如需部署包含中间 CA 的证书链,建议使用 OpenSSL 1.0.2 或更高版本,
              早期版本可能无法正确处理多链文件。

              首个 主机名 参数将作为自签名证书的主体和颁发者的 CommonName,
              所有 主机名 都将列为证书的 DNS 备用名称。
              未指定时默认使用 myhostname main.cf 参数值。

              生成的 RSA 私钥和证书文件命名为:
              key-年月日-时分秒.pemcert-年月日-时分秒.pem
              (UTC 时间)。ECDSA 文件则以 eckey-eccert- 开头。

              通过 DANE 部署新密钥前,请先更新 DNS 的 TLSA 记录,
              等待次级域名服务器更新及远程 DNS 缓存过期。

              部署 CA 证书前,请确保证书链文件包含所有必需的中间 CA 证书,
              且服务器证书必须位于链文件首位。部署时需覆盖原始自签名证书文件。

       new-server-cert [-a 算法] [-b 位数] [主机名...]
              功能类似 new-server-key,但不生成新私钥,
              而是复制当前部署的私钥到新密钥文件。
              若已发布 DANE TLSA "3 1 1" 或 "3 1 2" 记录,则无需更新 DNS。
              仅当无相同算法密钥配置时,才使用 算法位数 参数。

              此命令很少使用,因为生成的自签名证书有效期为 100 年,
              实际可能因量子计算机发展而过时。

              最可能的使用场景是系统主机名变更时,
              使证书中的名称与新主机名匹配(DANE "3 1 1" 无需此操作,
              但某些非 DANE 客户端可能因此产生警告或拒绝连接)。

       deploy-server-cert 证书文件 密钥文件
              部署指定证书和私钥(通常由上述命令生成,
              相关命令会记录并显示完整部署指令)。
              部署后可手动删除旧密钥和证书。
              文件路径可相对于 Postfix 配置目录。

       output-server-csr [-k 密钥文件] [主机名...]
              向标准输出写入指定密钥文件的证书签名请求 (CSR)。

              密钥文件 可以是绝对路径、相对于 $config_directory 的路径,
              或支持的密钥算法名称(参见 "postconf -T public-key-algorithms")。
              后者使用 main.cf 对应参数定位文件。
              默认值为 rsa。

              可指定零或多个 主机名,
              默认为 myhostname main.cf 参数值。

       output-server-tlsa [-h 主机名] [密钥文件...]
              向标准输出写入适用于 25 端口 SMTP 服务器的
              DANE TLSA 资源记录集,基于指定密钥文件。
              默认 主机名myhostname main.cf 参数值。

              密钥文件 列表可为绝对路径、相对路径,
              或支持的算法名称(参见 "postconf -T public-key-algorithms")。
              后者使用对应 Postfix 服务器 TLS 密钥文件参数值。
              参数值为空或 none 时不输出该算法记录。

              默认包含 rsaecdsa 两种算法。

辅助命令
       all-default-client
              当所有 SMTP 客户端 TLS 设置为默认值时返回 0(成功),
              否则返回非零值。典型用法:

              postfix tls all-default-client &&
                      postfix tls enable-client

       all-default-server
              当所有 SMTP 服务器 TLS 设置为默认值时返回 0(成功),
              否则返回非零值。典型用法:

              postfix tls all-default-server &&
                      postfix tls enable-server

配置参数
       "postfix tls 子命令" 功能会读取或更新以下配置参数。

       command_directory (参见 'postconf -d' 输出)
              Postfix 管理命令的安装目录。

       config_directory (参见 'postconf -d' 输出)
              Postfix main.cfmaster.cf 配置文件的默认位置。

       openssl_path (openssl)
              OpenSSL 命令行工具 openssl(1) 的路径。

       smtp_tls_loglevel (0)
              启用 Postfix SMTP 客户端 TLS 活动的额外日志。

       smtp_tls_security_level (空)
              Postfix SMTP 客户端的默认 TLS 安全级别。

       smtp_tls_session_cache_database (空)
              可选 Postfix SMTP 客户端 TLS 会话缓存的文件路径。

       smtpd_tls_cert_file (空)
              Postfix SMTP 服务器 RSA 证书的 PEM 格式文件路径。

       smtpd_tls_eccert_file (空)
              Postfix SMTP 服务器 ECDSA 证书的 PEM 格式文件路径。

       smtpd_tls_eckey_file ($smtpd_tls_eccert_file)
              Postfix SMTP 服务器 ECDSA 私钥的 PEM 格式文件路径。

       smtpd_tls_key_file ($smtpd_tls_cert_file)
              Postfix SMTP 服务器 RSA 私钥的 PEM 格式文件路径。

       smtpd_tls_loglevel (0)
              启用 Postfix SMTP 服务器 TLS 活动的额外日志。

       smtpd_tls_received_header (否)
              要求 Postfix SMTP 服务器在 Received: 头中添加
              协议、加密算法、客户端证书 CommonName 和颁发者信息。

       smtpd_tls_security_level (空)
              Postfix SMTP 服务器的 TLS 安全级别。
              非空值将覆盖过时的 smtpd_use_tlssmtpd_enforce_tls 参数。

       tls_random_source (参见 'postconf -d' 输出)
              内存中 tlsmgr(8) 伪随机数生成器 (PRNG) 的外部熵源。

参见
       master(8) Postfix 主控程序
       postfix(1) Postfix 管理接口

参考文档
       TLS_README, Postfix TLS 配置与操作指南

许可
       本软件需随附 Secure Mailer 许可证。

历史
       "postfix tls" 命令随 Postfix 3.1 版本引入。

作者
       Viktor Dukhovni

                                                                POSTFIX-TLS(1)