作弊条:如何为postfix配置TLS
📜 历史文件已不具备现实意义
本文记录的是2006年通过自建私有CA为Postfix签发一年期证书及生成512/1024位DH参数的早期做法,相关流程与密码学参数均已过时(512/1024位DH参数早已不再安全)。现时已有Let’s Encrypt等免费CA服务,通过ACME自动签发并续期短期证书(亦可配合DANE TLSA)是当前的最佳实践。
以下内容为作弊条,仅供参考;只保证在FreeBSD下能用。
为Postfix配置TLS的关键是产生自己的CA证书,并签署一年一续的服务证书。注意一定要保管好前者的私钥!
第一步:创建自签名CA
| |
把:
dir = ./demoCA # Where everything is kept改为:
dir = /usr/local/etc/ca # Where everything is kept接着生成根CA证书:
cd /usr/local/etc/ca
openssl req -new -x509 -keyout private/cakey.pem -out cacert.pem \
-days 3652 -config openssl.cnf注意:运气好的话,相当于10年。
第二步:生成与签署服务证书
接下来生成证书请求:
cd /usr/local/etc/ca
openssl req -nodes -new -x509 -keyout mykey.pem -out myreq.pem \
-days 365 -config openssl.cnf
openssl x509 -x509toreq -in myreq.pem -signkey mykey.pem -out tmp.pem签署:
openssl ca -config openssl.cnf -policy policy_anything \
-out mycert.pem -infiles tmp.pem
rm -f tmp.pem❗ 重要
/usr/local/etc/ca这个目录需要严格限制访问。
第三步:部署证书与生成DH参数
接下来,复制证书到/usr/local/etc/certs:
mkdir /usr/local/etc/certs
cp /usr/local/etc/ca/mykey.pem /usr/local/etc/certs/
cp /usr/local/etc/ca/mycert.pem /usr/local/etc/certs/合并CA证书到服务器证书:
cat /usr/local/etc/ca/cacert.pem >> /usr/local/etc/certs/mycert.pem修正权限:
chmod og-rwx /usr/local/etc/certs/mykey.pem
chmod og=r /usr/local/etc/certs/mycert.pem生成Diffie-Hellman参数:
openssl dhparam -out /usr/local/etc/postfix/dh_512.pem -2 512
openssl dhparam -out /usr/local/etc/postfix/dh_1024.pem -2 1024在线阅读本文并参与讨论 delphij's Chaos https://blog.delphij.net/posts/2006/10/postfixtls/