如何设置让我们在Ubuntu 14.04上加密多个Apache虚拟主机的证书

介绍

Web服务器中使用SSL证书来加密服务器和客户端之间的流量,为访问应用程序的用户提供额外的安全性。让我们的加密提供了一种免费获取和安装可信证书的简便方法。

本教程将向您展示如何在Ubuntu 14.04服务器中设置来自Let的加密的 TLS / SSL证书,以保护Apache上的多个虚拟主机。

我们还将介绍如何使用cron作业自动执行证书续订过程。

准备

要完成本指南,您需要:

  • 一台已经设置好可以使用sudo命令的非root账号的Ubuntu 14.04 服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器
  • 托管多个虚拟主机的功能性Apache Web服务器安装

每个虚拟主机都必须在自己独立的配置文件中设置,并且可以通过浏览器从外部访问。

出于本指南的目的,我们将为域example.comtest.com安装Let的加密证书。这些将在整个指南中引用,但您应该在跟随时将它们替换为您自己的域。

当您准备好继续前进时,请使用您的sudo帐户登录您的服务器。

第1步 - 下载Let的加密客户端

使用Let's Encrypt获取SSL证书的第一步是在服务器上安装该certbot软件。Certbot开发人员使用最新版本的软件维护自己的Ubuntu软件存储库。因为Certbot处于这样的活跃开发中,所以使用这个存储库来安装比Ubuntu提供的更新的Certbot是值得的。

首先,添加存储库:

sudo add-apt-repository ppa:certbot/certbot

你需要按下ENTER接受。然后,更新包列表以获取新存储库的包信息:

sudo apt-get update

最后,用apt-get从新存储库安装Certbot :

sudo apt-get install python-certbot-apache

certbot让我们加密客户端就可以使用了。

第2步 - 设置证书

使用certbotLet的加密客户端为Apache生成SSL证书非常简单。客户端将自动获取并安装新的SSL证书,该证书对作为参数提供的域有效。

虽然可以将多个Let的加密证书捆绑在一起,即使域名不同,也建议您为唯一的域名创建单独的证书。作为一般经验法则,只应将特定域的子域捆绑在一起。

生成第一个SSL证书

我们将首先为第一个虚拟主机example.com设置SSL证书。

我们将执行交互式安装并获取对域和子域有效的捆绑证书,即作为基本域的example.com和子域的www.example.com。您可以将当前在Apache安装程序中配置的任何其他子域包括为虚拟主机或别名。

运行certbot命令:

sudo certbot --apache -d example.com -d www.example.com

请注意,参数列表中的第一个域名将是Let's Encrypt用于创建证书的基本域,因此我们建议您将裸露的顶级域名作为列表中的第一个,然后是其他子域或别名。

对于此示例,基本域将是example.com

安装依赖项后,将向您提供自定义证书选项的分步指南。系统会要求您提供丢失密钥恢复和通知的电子邮件地址,您可以选择启用httphttps访问,还是强制所有重定向请求https

安装完成后,您应该能够在中找到生成的证书文件/etc/letsencrypt/live。您可以使用以下链接验证SSL证书的状态(不要忘记将example.com替换为您的基本域):

https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest

您现在应该可以使用https前缀访问您的网站。

生成第二个SSL证书

为其他虚拟主机生成证书应遵循上一步中描述的相同过程。

使用Let's Encrypt重复证书安装命令,现在使用要保护的第二个虚拟主机:

sudo certbot --apache -d test.com -d www.test.com

对于此示例,基本域将是test.com

同样,您可以使用以下链接验证SSL证书的状态(不要忘记将test.com替换为您的基本域):

https://www.ssllabs.com/ssltest/analyze.html?d=test.com&latest

如果要为其他虚拟主机生成证书,只需重复该过程,并且不要忘记使用裸顶级域作为基本域。

第3步 - 设置自动续订

我们的加密证书只有90天有效。这是为了鼓励用户自动执行证书续订过程。我们需要设置一个定期运行的命令来检查过期的证书并自动更新它们。

要每天运行续订检查,我们将使用cron标准系统服务来运行定期作业。我们用cron打开和编辑名为acrontab的文件来告诉我们该怎么做。

sudo crontab -e

您的文本编辑器将打开默认的crontab,这是一个文本文件,其中包含一些帮助文本。粘贴到文件末尾的以下行,然后保存并关闭它:

. . .
15 3 * * * /usr/bin/certbot renew --quiet

这一行的一部分15 3 * * *意味着“每天凌晨3:15运行以下命令”。你可以随时选择。

Certbot 的renew命令将检查系统上安装的所有证书,并在不到30天的时间内更新任何设置为过期的证书。--quiet告诉Certbot不输出信息也不等待用户输入。

cron现在将每天运行此命令。因为我们使用--apache插件安装了我们的证书,所以还将重新加载Apache以确保使用新证书。

结论

在本指南中,我们了解了如何从Let's Encrypt安装免费的SSL证书,以保护Apache上的多个虚拟主机。我们建议您不时查看官方的Let's Encrypt博客以获取重要更新。

更多Ubuntu教程请前往腾讯云+社区学习更多知识。


参考文献:《How to Set Up Let’s Encrypt Certificates for Multiple Apache Virtual Hosts on Ubuntu 14.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

Apache shiro 1.2.4版本远程命令执行漏洞详解

*本文原创作者:zhujunboabc,本文属FreeBuf原创奖励计划,未经许可禁止转载 搜了一下,发现网上关于apache shiro 1.2.4版本的漏洞...

38350
来自专栏云计算教程系列

如何在Ubuntu 16.04中为Nginx创建自签名SSL证书

TLS或称传输层安全性,及其前身SSL(代表安全套接字层)是用于将正常流量包装在受保护的加密包装中的Web协议。

55400
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Let's Encrypt来保护Nginx

Let's Encrypt是一个新的证书颁发机构(CA),它提供了一种获取和安装免费TLS / SSL证书的简便方法,从而在Web服务器上启用加密的HTTPS。...

12200
来自专栏信安之路

逻辑漏洞之密码重置

案例介绍: 问题出现在忘记密码处,可以通过手机找回和邮箱找回密码两种方式获得指定帐户的新密码设置权限

18400
来自专栏优信速度

本次更新包括集成CDSW1.3

目前互联网大量web的应用层协议从http迁移到了https,https已经在越来越多的场合替换http协议。近期由于业务需要,我们通过Wireshark对ht...

18500
来自专栏友弟技术工作室

openSSH服务及其应用

17750
来自专栏向治洪

Android开发中的安全

根据Android四大框架来解说安全机制 代码安全 java不同于C/C++,java是解释性语言,存在代码被反编译的隐患; 默认混淆器为progua...

20790
来自专栏云计算教程系列

如何在CentOS 6上安装DavMail

如果您的工作场所或学校使用Microsoft Exchange发送电子邮件,您可能希望从不支持Exchange协议的电子邮件客户端访问您的Exchange电子邮...

21240
来自专栏云计算教程系列

如何在Ubuntu上使用SSL来保护Nginx

腾讯云SSL是腾讯云的证书颁发服务,SSL证书(SSL Certificates)提供了安全套接层(SSL)证书的一站式服务,包括证书申请、管理及部署功能,与顶...

52220
来自专栏魏艾斯博客www.vpsss.net

Xshell 用 SSH 密钥登录服务器的配置过程

3.3K40

扫码关注云+社区

领取腾讯云代金券