如何在iRedMail中添加域名

之前,我们介绍过如何使用iRedMail在Ubuntu 20.04 LTS 64 bit操作系统上搭建功能全面的邮件服务器系统。iRedMail支持绑定无限多个域名,因此,若您有多个域名,您可以将他们添加到同一个邮件服务器上,无需分别搭建多个邮件服务器。

今天,我们就来介绍如何给搭建好的iRedMail添加绑定域名。本文部分内容翻译自LinuxBabe, 本文作者为香菇肥牛,本文地址为https://qing.su/article/158.html, 转载需注明原文链接。谢谢!

 

1, 准备工作

本文将用mx.qing.su来表示邮件服务器的服务器名,用88.88.88.88来代表邮件服务器的IP地址,用example.com来代表您需要添加的额外的域名。后面将不再另行说明。

首先,添加域名之前,您需要已经搭建好一个单域名的iRedMail系统。请按照这篇教程来搭建:https://qing.su/article/154.html

有了一个iRedMail邮件服务器系统,您需要为接下来额外添加的域名设置DNS解析。我们先添加如下几条,等添加好之后还需要额外添加一些记录。请前往example.com域名的DNS服务提供商,添加以下记录:

  • 添加A/AAAA记录,将example.com解析到您的网站的服务器IP或者设置为任意值;若您不打算使用这个域名做网站,可以添加A记录将example.com解析到127.0.0.1或者任意内网IP
  • 添加A记录,将mail.example.com解析到88.88.88.88
  • 添加MX记录,将example.com的MX解析值设置为mail.example.com, 优先级设置为10
  • 添加TXT记录,设置example.com的解析值为v=spf1 mx ~all

设置好DNS记录之后,我们可以开始添加绑定域名了。

 

2, 后台添加域名

在我们之前的教程中,我们提到过,在iRedMail管理面板中,可以为域名添加新用户。大家或许也注意到了,管理面板中也可以添加新域名。访问您的服务器主域名的管理面板,地址为https://mx.qing.su/iredadmin, 并用postmaster @ qing.su账户登录,来到如下图所示的界面。

点击Add –> Domain, 可以看到下面的添加域名界面。我们输入需要添加绑定的新域名,比如example.com.

点击Add即可成功添加域名。添加好之后,会进入下面这个页面。我们点击屏幕中的user添加新邮箱用户。

通常,我们需要设置一个postmaster@example.com域名,转发到主域名的postmaster邮箱。然后,您可以根据自己的需要添加其他的邮箱。

添加好邮箱后,我们进入下一步。请注意,您必须先在后台添加好域名后才能进行接下来的操作步骤;但是您无需在这时添加好所有的用户邮箱。这些邮箱可以之后再添加,不影响邮箱的使用。

 

3, 配置Nginx

添加好域名之后,我们需要更改Nginx (即RoundCube Webmail), Dovecot和Postfix设置,为这个新域名开启邮件收发。

我们依次执行:

1
2
3
4
cd /etc/nginx
touch sites-enabled/mail.domain2.com.conf
cat sites-enabled/00-default.conf | tee -a sites-enabled/mail.example.com.conf
cat sites-enabled/00-default-ssl.conf | tee -a sites-enabled/mail.example.com.conf

然后,编辑新的域名的Nginx配置文件/etc/nginx/sites-enabled/mail.example.com.conf,

找到下面这行(两次出现):

1
server_name _;

替换为:

1
server_name mail.example.com;

保存退出。由于更改了Nginx配置文件,我们需要让Nginx重新加载一下。

1
service nginx reload

接下来一部比较Tricky, 我们需要为这个新添加的域名配置SSL安全证书。如果您按照我们的教程来搭建了iRedMail邮件系统,那么您的Postfix/Dovecot只包含了一个域名的证书;如果要为新域名也添加一个新的证书,那么在Postfix/Dovecot的配置里面就会非常麻烦。这里,我们将这个新添加的域名与之前的主域名合并为一个证书,这样我们就无需额外更改Postfix/Dovecot配置了。

我们依旧使用Let’s Encrypt来添加。执行:

1
certbot certonly --webroot -d mx.qing.su,mail.example.com --cert-name mx.igpu.net

您的Let’s Encrypt证书申请界面将和下面类似:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
You are updating certificate mx.igpu.net to include new domain(s):
+ mail.example.com

You are also removing previously included domain(s):
(None)

Did you intend to make this change?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(U)pdate cert/(C)ancel: U
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for mail.example.com
Input the webroot for mail.example.com: (Enter 'c' to cancel): /var/www/html
Waiting for verification...
Cleaning up challenges

更新证书完毕之后,我们需要重新载入Nginx, Dovecot, Postfix配置文件。

1
2
3
service nginx reload
service dovecot reload
service postfix reload

这样,我们配置好了Nginx.  此时,访问https://mail.example.com即可进入这个新域名的网页邮箱面板。

 

4, 设置DKIM与DMARC

添加第二个域名,我们还需要为这个域名设置相关的验证记录,即DKIM与DMARC记录。我们先介绍DKIM的设置。

编辑文件/etc/amavis/conf.d/50-user, 找到下面这行(我这里是第504行):

1
dkim_key('qing.su', 'dkim', '/var/lib/dkim/qing.su.pem');

在这行下面添加一行,如下:

1
dkim_key('example.com', 'dkim', '/var/lib/dkim/example.com.pem');

然后,找到下面@dkim_signature_options_bysender_maps这一段,在中间添加下面这一行:

1
"example.com" => { d => "example.com", a => 'rsa-sha256', ttl => 10*24*3600 },

添加完毕后应该如下图所示:

这样,我们即可生成密钥了。执行:

1
2
3
amavisd-new genrsa /var/lib/dkim/example.com.pem 2048
service amavis restart
amavisd-new showkeys

可以看到,我们的新域名example.com的密钥已经生成,我们将这个公钥填入DNS服务提供商,即可实现DKIM验证(TXT记录,域为dkim._domainkey.example.com, 解析值为下面那些引号中的字符串,注意仅保留首尾两个引号,移除中间的引号;若您使用CloudFlare的DNS服务,则首尾的引号也需要去掉)。

设置好DKIM记录后,您可以在服务器上执行:

1
amavisd-new testkeys

如果看到类似下面的输出,则说明DKIM验证正确:

1
2
TESTING#1 qing.su: dkim._domainkey.qing.su => pass
TESTING#2 example.com: dkim._domainkey.example.com => pass

 

最后,我们设置DMARC记录。简单起见,我们仅需为_dmarc.example.com设置TXT记录,解析值为:

1
"v=DMARC1; p=none; pct=100; rua=mailto:dmarc-reports@example.com"

同样地,如果您使用的是CloudFlare的DNS服务,请移除首尾的引号,因为CloudFlare会自动帮您添加一对引号。

 

至此,我们成功地为iRedMail邮件服务器添加绑定了新域名。如果您有其他的域名需要绑定,需要重复上面的步骤。

若您有任何疑问,欢迎在这里留言,我将尽力解答。本文作者为香菇肥牛,本文地址为https://qing.su/article/158.html, 转载需注明原文链接。谢谢!

 

9 thoughts on “如何在iRedMail中添加域名”

    • 如果要添加域名且作为hostname之一需要这样操作;如果只需要添加一个域名及基于该域名的邮箱,然后用原来的hostname作为服务器地址收发信,那么只需要在iRedMail后台添加域名就可以了,不需要这些操作。

      Reply
  1. I like the valuable information you provide for your articles.

    I’ll bookmark your blog and check again right here regularly.
    I am slightly certain I will be told lots of new stuff right right here!
    Best of luck for the following! 0mniartist asmr

    Reply
  2. Its like you read my mind! You seem to know so much approximately this, like
    you wrote the e-book in it or something. I
    feel that you could do with a few p.c. to drive the message house a little bit, but other than that,
    that is great blog. An excellent read. I will certainly
    be back.

    Reply

Leave a Comment