为 Dovecot 和 Postfix 生成 SSL 密钥

0le*_*leg 5 ssl email-server postfix dovecot

按照本教程进行操作: https://www.vultr.com/docs/simple-mailserver-postfix-dovecot-sieve-debian

尝试创建自签名 SSL 证书以用于我的邮件服务器的测试目的,使用代码:

openssl req -newkey rsa:4096 -sha512 -x509 -days 365 -nodes -keyout /etc/dovecot/private/mykey.key -out /etc/dovecot/mycert.pem
Run Code Online (Sandbox Code Playgroud)

现在,修改 Postfix 和 Dovecot 配置文件。我不明白的是这段代码是如何实现的:

smtpd_tls_cert_file = /etc/dovecot/private/mykey.pem
smtpd_tls_key_file = /etc/dovecot/private/mycert.pem
smtpd_use_tls = yes
Run Code Online (Sandbox Code Playgroud)

这段代码:

ssl = yes
ssl_key = /etc/dovecot/private/mykey.pem
ssl_cert = /etc/dovecot/private/mycert.pem
Run Code Online (Sandbox Code Playgroud)

想工作吗?首先,只创建了一个文件 - /etc/dovecot/private/mykey.key.

也许有人可以解释运行openssl命令 - KEY 文件的 PEM 后会得到哪些文件?

编辑:我明白这个命令的结果:

openssl req -newkey rsa:4096 -sha512 -x509 -days 365 -nodes -keyout /etc/dovecot/private/mykey.key -out /etc/dovecot/mycert.pem
Run Code Online (Sandbox Code Playgroud)

应该生成 2 个文件 - mykey.pem(未签名密钥)和mycert.pem(自签名证书),但它没有发生。我用不同的方式做到了:

openssl genrsa -out key.pem 2048
openssl req -new -key key.pem -out csr.pem
openssl req -x509 -days 365 -key key.pem -in csr.pem -out certificate.pem
Run Code Online (Sandbox Code Playgroud)

但好奇为什么这个快捷方式代码不起作用?语法错误在哪里?

0le*_*leg 1

@drookie 和 @andytech 的评论帮助我解决了这个问题。没有错误,只是缺乏理解和关注。

在进一步搜索答案后,我发现了一篇关于 SSL 密钥生成的好文章:https://msol.io/blog/tech/create-a-self-signed-ssl-certificate-with-openssl/

关于.pem缺席,我错过了证书是生成到/etc/dovecot/cert.pem不是生成到/etc/dovecto/private/cert.pem