建立ISPmail-在服务器上建立TLS

2014年4月25日 分类: ISPmail (54 个脚步)

本文章为原创翻译文章,转载请保留来源。原文来自 Christoph Haas 网站https://workaround.org/ispmail/wheezy/tlsifying-your-server

(如果你不熟悉的英文缩写 “TLS”:它的前身是SSL。)

互联网已经成为一个邪恶的地方。许多硬件和软件以及技术人员介于你的电脑和你的邮件服务器之间。有些人可能不被信任。另一些人还会监视你。

所以现在的问题是运行任何未加密的网络服务-特别是当它来管理你的服务器和使用你的电子邮件。

在HTTP下考虑任何密码都是浪费。所以在使用PHPMyadmin来发送数据库root用户密码时我们要考虑使APache服务器更安全。

建立TLS并不难。在这里,我们将创建密钥和证书,来使用网页邮件、POP3、IMAP和SMTP的安全。

你必须决定是创建一个证书或者购买一个。以下是比较:

类型 优点 缺点 应用范围
自签名 免费、快速创建 用户将获得一个不受信任的证书的警告信息。 为自己和不介意忽视对不明身份的警告消息朋友的私人邮件服务器。
用私有的PKI(公钥基础设施)签名 免费、你可以创建更多的证书,用户如果安装了根证书的话会直接信任。 需要15分钟,需要在所有用户的计算机上安装证书并信任。这个仅有在你可以自动分配证书的企业环境中  自己或者朋友使用,切不介意安装你的根证书
从StartSSL获得免费的证书 免费 用户可能不会得到一个警告。 花15分钟的时间。 公共邮件服务
支付证书 用户不会得到一个警告 每年花费大概450到1800元。可能是一个冗长的注册过程。你支持证书黑手党。你不以任何方式改善了通信的安全。 土豪

注:不管你用什么方法,创建密钥都要在自己的服务器上进行。不要信任一个由他人生成的密钥。

你跳过这些步骤,看起来简单,但是对方知道了你的私钥,在理论上可以拦截你的加密流量。

我将会描述如何在以下的部分做的好。只要按照指示选择您的选项。

选项1  自签名

最简单的选择。只要在您的服务器上运行该命令,你有一个有效的通用的证书,在接下来的十年是有效的:

openssl req -new -x509 -days 3650 -nodes -newkey rsa:4096 -out /etc/ssl/certs/mailserver.pem -keyout /etc/ssl/private/mailserver.pem

你将会被问到几个信息。输入任意内容。唯一需要注意的就是“Common Name” ,必须包含完整的主机名,并且在网络上注册过的。

最后确保密钥只能给root用户访问:

chmod go= /etc/ssl/private/mailserver.pem

选项2 用私有PKI签名

这个选择比自签名好一点。不过需要你的用户手动安装你的根证书,并且手动将你的PKI在他们的浏览器和电子邮件程序建立信任关系。

想要知道怎么新建自己的PKI请搜索 openssl 和 CA.pl,在这里就不描述。

一旦PKI新建好了,只需使用以下命令来创建一个证书签名请求(CSR) :

/usr/lib/ssl/misc/CA.pl -newreq

你将会被询问到几个信息。输入你想要的内容。唯一需要注意的就是“Common Name” ,必须包含完整的主机名,并且在网络上注册过的。

然后签署请求(创建证书):

/usr/lib/ssl/misc/CA.pl -sign 

你将会在当前目录找到三个文件:

  • newreq.pem – 随时可以删除它
  • newkey.pem – 移动到 /etc/ssl/private/mailserver.pem
  • newcert.pem – 移动到 /etc/ssl/certs/mailserver.pem

最后确保密钥只能给root用户访问:

chmod go= /etc/ssl/private/mailserver.pem

选项3 从StartSSL申请免费的证书

这是几乎总是最佳的选择。它不花你的钱,会给你一个基本可信的证书,大多数浏览器和电子邮件客户端将接受。

创建一个密钥文件:

openssl genrsa -des3 -out /etc/ssl/private/mailserver.pem 4096

根据密钥创建一个证书请求(CSR) 文件

openssl req -new -key /etc/ssl/private/mailserver.pem -out /etc/ssl/certs/mailserver.csr

你将会被询问到几个信息。输入你想要的内容。唯一需要注意的就是“Common Name” ,必须包含完整的主机名,并且在网络上注册过的。

现在去startssl并注册一个账户。

首先使用“验证向导”来验证您的电子邮件地址,然后使用验证向导再次确认您想使用您的电子邮件服务器的域。

然后使用“证书向导”创建“Web Server SSL/TLS certificate” 选择你的邮件地址,粘贴CSR文件的内容到网站。

如果一切顺利的收到您的证书文件的CSR文件的内容。移动文件到 /etc/ssl/certs/mailserver.pem

为了确保下面的Apache配置信息正确,请确保安装了证书链。在StartSSL文档上面有一个实例配置

选项3 支付证书

你确定你要这样做?那就在网上搜索“SSL certificate“ 然后扔大量的钱在任何证书权威机构。

废话少说。创建一个密钥文件:

openssl genrsa -des3 -out /etc/ssl/private/mailserver.pem 4096

根据密钥创建一个证书请求(CSR) 文件

openssl req -new -key /etc/ssl/private/mailserver.pem -out /etc/ssl/certs/mailserver.csr

现在你考虑投资的钱。我建议你创建CSR文件时填的信息要非常小心。必须包含完整的主机名,并且在网络上注册过的。

然后从SSL机构使用CSR文件请求证书。

Web服务器启用HTTPS

现在你有一个有效的密钥和证书,让我们为Web服务器使用HTTPS而不是HTTP。

进入/etc/apache2/sites-available目录并寻找”default-ssl“文件。这是一个启用HTTPS非常好的示例。编辑它并修改为以下内容:

SSLCertificateFile    /etc/ssl/certs/mailserver.pem

SSLCertificateKeyFile /etc/ssl/private/mailserver.pem

启用当前SSL配置:

a2ensite default-ssl

同时启用mod_ssl 模块:

a2enmod ssl

重启Web服务器:

service apache2 reload

如果工作正常将会看到一个[OK]。打开浏览器并输入https://YOURSERVER/ 看到一个"It works!" 那就说明成功了。

没用看到则可以运行 apache2ctl configtest 查看问题。

或者查看 /var/log/apache2/error.log 日志文件。

将HTTP转跳到HTTPS

对于一些忘记输入https而输入http的用户,我们可以建立一个重定向。让他们转发到安全的地址上。

编辑/etc/apache2/sites-available/default并在任何位置插入以下内容

Redirect permanent / https://YOUR.MAIL.SERVER/

当然,你必须以完全合格的域名的邮件服务器代替YOUR.MAIL.SERVER

建立ISPmail-在服务器上建立TLS 【声明】本文 建立ISPmail-在服务器上建立TLS 为柠之漠然原创文章,转载请注明出自 枫之落叶
并保留本文有效链接:https://blog.shiniv.com/2014/04/ispmail-tlsifying-your-server/ , 转载请保留本声明!

标签: , , ,
目前还没有任何评论.
你必须要启用 Javascript