前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何设置让我们在Ubuntu 14.04上加密多个Apache虚拟主机的证书

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

原创
作者头像
灬半痴
修改2018-10-23 16:53:00
1.7K0
修改2018-10-23 16:53:00
举报

介绍

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是值得的。

首先,添加存储库:

代码语言:javascript
复制
sudo add-apt-repository ppa:certbot/certbot

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

代码语言:javascript
复制
sudo apt-get update

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

代码语言:javascript
复制
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命令:

代码语言:javascript
复制
sudo certbot --apache -d example.com -d www.example.com

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

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

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

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

代码语言:javascript
复制
https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest

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

生成第二个SSL证书

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

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

代码语言:javascript
复制
sudo certbot --apache -d test.com -d www.test.com

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

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

代码语言:javascript
复制
https://www.ssllabs.com/ssltest/analyze.html?d=test.com&latest

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

第3步 - 设置自动续订

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

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

代码语言:javascript
复制
sudo crontab -e

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

代码语言:javascript
复制
. . .
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》

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
    • 准备
      • 第1步 - 下载Let的加密客户端
        • 第2步 - 设置证书
          • 生成第一个SSL证书
          • 生成第二个SSL证书
        • 第3步 - 设置自动续订
          • 结论
          相关产品与服务
          SSL 证书
          腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档