当我设置 Postfix 时,我必须创建一个证书,因为 Postfix 附带的 snakeoil 证书仅用于演示目的。我使用以下命令:
sudo openssl req -x509 -newkey rsa:4096 -sha512 -keyout postfix-key.pem -out postfix-cert.pem -days 3650
这将提示我输入国家名称、州或省份名称等。
在 Postfix 环境中,是否有任何目的会让人费心尽可能准确地填写证书而不是使用默认值?我试图使我的 Postfix 服务器尽可能合法,以避免被列入黑名单等,所以我想知道尽可能准确地填写证书是否会产生任何影响,例如,从我的 Postfix 服务器向 Gmail 帐户发送电子邮件时。
答案1
如果您愿意将这些信息公开,那么填写这些信息并没有什么坏处。但是,没有必要广播这些数据(例如,作为一名普通公民,我不喜欢将此类信息公开在 WHOIS 数据库中)。对于接收 MTA 以接受 SMTP over TLS,您甚至不必确保您的邮件服务器的 FQDN 列在证书中通用名称或者DNS 名称(主体备用名称)是 HTTPS 所必需的。
根据我的经验,X.509 证书的详细信息与远程 MTA 是否将 SMTP 连接视为合法无关。我刚刚进行了一项实验,重新配置了我的 Postfix 服务器以使用已过期 6 天的 X.509 证书,并使用该证书发送了几封电子邮件。所有接收 MTA 都接受了这些消息;GMail 标头验证了该消息已通过 TLS 1.2 接收。
使用非黑名单 IP 地址并配置防晒指数, DKIM,正向确认的反向 DNS和其他有关的技术是让您的电子邮件被视为合法的最佳方法。
目前,大多数邮件服务器都配置为接受 SMTP over TLS 的自签名证书,但未来几年情况可能并非如此。为了安全起见,我确保我的邮件服务器的 FQDN 包含在证书的DNS 名称(主题备用名称)并且该证书是由优秀的 Let's Encrypt 证书颁发机构(免费)签名的。
答案2
机会性 TLS
邮件服务器通常不需要验证“你是谁”;因此,在大多数情况下,自签名证书就足够了。我的邮件服务器每小时重新生成一次自签名证书,因为。
[剪辑]
openssl req -new -subj "/CN=${fqdn}" -key ${dir}/${ymd}.key -out ${dir}/${ymd}.csr
openssl x509 -req -days 2 -in ${dir}/${ymd}.csr -sha256 -CA ${dir}/${ymd}.ca.crt -CAkey ${dir}/${ymd}.ca.key -set_serial ${ymd} -out ${dir}/${ymd}.crt
以上是我曾经使用过的所有内容的片段。${ymd} 只是文件的日期。${fqdn} 是我的邮件服务器的 DNS 名称。
在某些情况下,企业对企业关系可能需要验证“您是谁”。在这种情况下,您需要一个签名证书,或者如果您不信任某个 CA 来满足您的用例,则在您的组织之间设置一个共享的公共 CA 证书。一些金融机构会这样做。
答案3
没有必要将所有信息都放入自签名证书中。唯一的原因是用户想要检查它。