(mTLS)客户端证书身份认证.note
1、postfix 配置 客户端证书身份认证:
要单独针对加密端口配置
(1)配置 postfix:
# 注意,这个命令:smtpd_tls_req_ccert=yes不能写在 main.cf 中,它会导致postfix一直触发TLS握手,并且疯狂写入将磁盘I/O占满,导致虚拟机包括外面的宿主机都变得非常卡,不能在 main.cf 中写# 在 main.cf 中指定 根CA证书文件:
vim /etc/postfix/main.cf注意,默认的是 smtp,我们要手动添加一个 smtpd的

vim /etc/postfix/master.cf
# 配置只在 587 和 465端口启用:添加一行 smtpd_tls_req_ccert=yes,并将 smtpd_tls_security_level 复制到下面

·测试:
587端口:
# 无证书测试:
printf 'EHLO aftertls\r\nQUIT\r\n' | openssl s_client -connect Server4.shanghai.org:587 -starttls smtp -servername Server4.shanghai.org -tls1_2 -quiet
# 有证书测试:
printf 'EHLO mtls-test\r\nQUIT\r\n' | openssl s_client -connect Server4.shanghai.org:587 -starttls smtp -servername Server4.shanghai.org -tls1_2 -CAfile /etc/ssl/ca.crt -cert /etc/ssl/client.crt -key /etc/ssl/client.key -quiet
465端口:
# 不带证书测试:
printf 'EHLO no-cert\r\nQUIT\r\n' | openssl s_client -connect Server4.shanghai.org:465 -servername Server4.shanghai.org -tls1_2 -CAfile /etc/ssl/ca.crt -quiet
# 带证书测试:
printf 'EHLO mtls-465\r\nQUIT\r\n' | openssl s_client -connect Server4.shanghai.org:465 -servername Server4.shanghai.org -tls1_2 -CAfile /etc/ssl/ca.crt -cert /etc/ssl/client.crt -key /etc/ssl/client.key -quiet
·thunderbird 添加客户端证书:
# 先将客户端证书 私钥和公钥 合成 pfx 文件:
openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12

导入 p12 证书:

·发送邮件,此时发送邮件就会弹出提示:

·配置 自动选择证书:
添加完证书后回到刚刚那里:
勾选 select one automatically

2、dovecot 配置 客户端证书身份认证:
vim /etc/dovecot/conf.d/10-ssl.conf