专栏首页云计算教程系列如何设置让我们在Ubuntu 14.04上加密多个Apache虚拟主机的证书
原创

如何设置让我们在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 条评论
登录 后参与评论

相关文章

  • 如何在Ubuntu 16.04上使用Icinga监视主机和服务

    Icinga是一个开源监控系统,用于监控网络主机和服务的运行状况。在本教程中,我们将使用Icinga设置两种不同类型的监视配置。第一种是基于对主机外部服务的简单...

    灬半痴
  • 如何使用LVM快照将MySQL数据库备份到腾讯云COS

    定期数据库备份是防止意外数据丢失事件的关键步骤。设计有效的备份和恢复策略通常需要通过恢复速度,数据完整性和备份覆盖来权衡性能影响,实施成本和数据存储成本。最佳解...

    灬半痴
  • 如何在Ubuntu 14.04上使用Nginx设置密码验证

    设置Web服务器时,通常会希望限制访问的站点部分。Web应用程序通常提供自己的身份验证和授权方法,但如果Web服务器不足或不可用,则可以使用Web服务器本身来限...

    灬半痴
  • 17款最好用的跨浏览器测试工具

    市面上有很多不同的浏览器,每种浏览器都有数百万用户。因此,在构建一个网站或 Web 应用程序时,就需要测试它与不同浏览器的兼容性。最好、最方便的方法是使用跨浏览...

    深度学习与Python
  • 改Hosts文件上google

    用户1130771
  • 10款常见的Webshell检测工具

    当网站服务器被入侵时,我们需要一款Webshell检测工具,来帮助我们发现webshell,进一步排查系统可能存在的安全漏洞。

    Bypass
  • 使用dig执行手动DNS查询

    dig 是一个命令行DNS查询实用程序,允许您诊断域名解析问题。如果您没有域名,建议您先去这里注册一个域名,将域名解析到您的服务器,您可以使用腾讯云云解析进行快...

    穿鞋跑得快
  • 配置DNS服务的主从同步

    在生产环境中,为了实现高可用,通常使用两台或多台服务器提供服务,而DNS服务也不例外。但DNS服务器有多台时,系统管理员就不得不手动为多台服务器配置DNS服务,...

    小柒吃地瓜
  • 给你的CVM安装一个面板吧!

    Vesta Control Panel是一个免费的开源控制面板,具有网站搭建,数据库,邮件管理等功能。在本教程中,您将在Ubuntu或CentOS服务器上安装控...

    小皇帝James
  • 《Prometheus监控实战》第5章 服务发现

    yeedomliu

扫码关注云+社区

领取腾讯云代金券