我拥有来自受信任 CA 的 SSL 证书和密钥(非自签名)。这为我在 Fedora 系统上提供了以下文件:
/etc/pki/tls/certs/mydomain.crt
/etc/pki/tls/certs/mydomain.csr
/etc/pki/tls/private/mydomain.key
我的 sendmail.mc 文件包含以下行:
define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt')dnl
define(`confSERVER_CERT', `/etc/pki/tls/certs/mydomain.crt')dnl
define(`confSERVER_KEY', `/etc/pki/tls/private/mydomain.key')dnl
请注意,我没有.pem
在 sendmail 中使 TLS 运行的示例中通常显示的任何文件。
当我启动 sendmail 时,出现以下错误:
Aug 22 15:10:17 cs sendmail[23424]: STARTTLS=server, error: SSL_CTX_use_PrivateKey_file(/etc/pki/tls/private/mydomain.key) failed
我猜想错误的原因在于它正在寻找一个.pem
文件,但我只有一个.key
文件可以提供。我应该创建一个.pem
文件吗?如果是,我该如何从现有文件中创建?当我尝试运行时,make mydomain.pem
它想从头开始创建一个 CSR。
解决方案
如下所述,密钥文件上有密码。我使用命令删除了它openssl
,sendmail 能够加载该文件。我还需要启动saslauthd
才能让一切正常工作。
答案1
看起来是正确的,.pem 文件是证书或公钥,据我所知,也可以是 .cer 或 .crt。请参阅这篇类似的帖子了解更多信息。
关于实际错误,密钥是否与密码相关联?您确实有文件吗?.key 应该以 开头,---BEGIN PRIVATE KEY---
.crt 应该以---BEGIN CERTIFICATE---