2026-06-29 09:54:21
利用SSL/TLS保护Linux邮件服务需通过生成证书、配置服务、设置安全文件夹及测试等步骤实现。以下是具体操作流程:
一、生成SSL/TLS证书SSL/TLS证书可通过OpenSSL工具生成,分为自签发证书和购买证书两种方式。
生成证书签发请求(CSR)和私钥使用以下命令生成CSR文件和私钥,过程中需填写域名、地理位置等信息:
$ openssl req -new -newkey rsa:2048 -nodes -keyout mail.mydomain.key -out mail.mydomain.csr生成自签发证书若需自签发证书,需先创建根CA:
生成根CA私钥(需设置密码):
$ openssl genrsa -des3 -out myCA.key 2048生成根CA证书(有效期5年):
$ openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.pem用CSR文件请求根CA签名生成证书:
$ openssl x509 -req -in mail.mydomain.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out mail.mydomain.pem -days 1825 -sha256购买证书若从证书颁发机构购买,需上传CSR文件,下载生成的证书(如mail.mydomain.pem)。若需中间证书,需合并证书文件:
$ cat mail.mydomain.pem gd_bundle-g2-g1.crt > mail.mydomain.pem为证书和私钥创建安全文件夹,并限制访问权限:
$ mkdir /etc/pki/tls$ chown root:root /etc/pki/tls$ chmod 700 /etc/pki/tls$ chmod 600 /etc/pki/tls/*三、配置SMTP和IMAP服务以Postfix(SMTP)和Dovecot(IMAP)为例,配置其使用SSL/TLS证书。
Postfix配置编辑/etc/postfix/main.cf,添加以下内容:
smtpd_use_tls = yessmtpd_tls_cert_file = /etc/pki/tls/mail.mydomain.pemsmtpd_tls_key_file = /etc/pki/tls/mail.mydomain.key自定义加密选项(可选):
smtpd_tls_eecdh_grade = strongsmtpd_tls_protocols= !SSLv2, !SSLv3, !TLSv1, !TLSv1.1smtpd_tls_mandatory_protocols= !SSLv2, !SSLv3, !TLSv1, !TLSv1.1smtpd_tls_mandatory_ciphers = highsmtpd_tls_security_level=maysmtpd_tls_ciphers = hightls_preempt_cipherlist = yessmtpd_tls_mandatory_exclude_ciphers = aNULL, MD5, DES, ADH, RC4, PSD, SRP, 3DES, eNULLsmtpd_tls_exclude_ciphers = aNULL, MD5, DES, ADH, RC4, PSD, SRP, 3DES, eNULLsmtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1Dovecot配置编辑/etc/dovecot/dovecot.conf,添加以下内容:
ssl = requiredssl_cert = </etc/pki/tls/mail.mydomain.pemssl_key = </etc/pki/tls/mail.mydomain.key自定义加密选项(可选):
ssl_cipher_list = EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:ALL:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SSLv2ssl_prefer_server_ciphers = yesssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1ssl_min_protocol = TLSv1.2若Linux系统启用了SELinux,需为证书文件设置正确的上下文:
重启Postfix和Dovecot服务,并更新电子邮件客户端配置以使用新端口(如IMAPS的993端口、SMTPS的465端口或Submission的587端口)。部分客户端需手动更新端口设置。
六、测试配置使用OpenSSL命令行工具测试配置是否生效:
$ openssl s_client -connect mail.mydomain.com:993 # 测试IMAPS$ openssl s_client -starttls imap -connect mail.mydomain.com:143 # 测试IMAP+STARTTLS$ openssl s_client -starttls smtp -connect mail.mydomain.com:587 # 测试SMTP+STARTTLS测试命令会输出连接详情、证书信息、加密算法等,用于验证配置正确性。