需求是要使用cPanel的邮箱,但是发现第三方软件无法连接,收发邮件没有问题。调整DNS后还是不行,可能是SSL有问题,于是又使用Let's Encrypt插件,又出现一些问题。最后直接把这几步重新再整理一遍。相当于重新设置DNS与SSL证书。
写在前面的话
如果DNS使用Cloudflare配合Let's Encrypt我是没法实现使用DNS验证的。也就是无法开启通配符功能(Include Wildcard*)
开始配置
第一步开始我们先注册一个Cloudflare账号,注册完成后在现有的DNS管理网站修改DNS记录,多半是购买域名时商家提供的DNS解析服务。修改NS为nia.ns.cloudflare.com和rajeev.ns.cloudflare.com
然后我们登录cpanel后台,选择Cloudflare,然后登录账号,添加网站,我记得会有一个选择,是只是用CName还是全部托管,我选择全部托管。
这里有一个坑,就是cpanel与Cloudflare连接后不会自动把所有DNS创建到Cloudflare上,需要手动开启。
注意到com后面的“.”没,开启后会才会添加解析记录到Cloudflare中,这也是我捣鼓半天不生效的一个原因,以为会自动添加进去。之后我们登录Cloudflare网站查看DNS应该是这样的
到此,我们网站DNS方面就交给Cloudflare了,具体使用可以自行搜索。
配置SSL
在cpanel中,安全模块下,找到Let's Encrypt,找到Issue a new certificate,点击域名后的Issue
往下我们直接点击Issue就可以生成了
我说一下dns不能使用的原因,Let's Encrypt SSL使用DNS的话需要在DNS记录中添加对应TXT的一串字符,而这个字符会自动添加到cpanel的DNS Zone中,但是我们使用的DNS是在Cloudflare中,因此Let's Encrypt SSL在校验的时候是找不到DNS中对应的TXT记录的,而每次创建失败重新创建的时候添加的字符都是不同的,这两者又没法关联,因此只能使用http的方法创建。但是并不妨碍我们开启HTTPS。
如果你硬要使用DNS的话也不是不可以,使用https://www.sslforfree.com/ 这个网站生成SSL,选择DNS,手动添加TXT记录到DNS中,然后将秘钥证书文件导入到cpanel中,再开启使用也可以,只是我的需求目前不需要这么复杂,就不详细说了。
开启HTTPS
回到Cloudflare的设置中,直接在cpanel中点击Cloudflare就可以,找到设置,下面的SSL开启Full strict。
这个选项的意思是Cloudflare会核对你网站的证书,如果没问题的话正常开启HTTPS,如果之前申请证书有问题的话,是无法开启HTTPS的。
邮箱设置
打开Cloudflare,如果没有MX记录的话需要增加一条,指向mail.(域名).com
MX |
Automatic |
之后mail的记录默认可能是cname,如果连接失败的话更改为A记录,指向服务器IP地址即可
返回到电子邮件账户中,点击对应的账户,选择Connect devices,按照说明添加即可关联第三方邮箱软件。推荐使用有SSL的