前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 14.04上使用Let's Encrypt来保护Nginx

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

原创
作者头像
独钓寒江雪_Ly
修改2018-10-22 11:59:16
1.2K0
修改2018-10-22 11:59:16
举报

介绍

Let's Encrypt是一个新的证书颁发机构(CA),它提供了一种获取和安装免费TLS / SSL证书的简便方法,从而在Web服务器上启用加密的HTTPS。它通过提供软件客户端Certbot简化了流程,该客户端尝试自动化大多数(如果不是全部)所需步骤。目前,获取和安装证书的整个过程在Apache和Nginx Web服务器上都是完全自动化的。

在本教程中,我们将向您展示如何使用Certbot获取免费的SSL证书,并在Ubuntu 14.04 LTS上将其与Nginx一起使用。我们还将向您展示如何自动续订SSL证书。

我们将在本教程中使用默认的Nginx配置文件,而不是单独的服务器块文件。我们建议为每个域创建新的Nginx服务器块文件,因为它有助于避免一些常见错误,并将默认文件维护为预期的回退配置。

准备

在学习本教程之前,您需要具备以下内容:

一旦你完成了所有的准备条件,让我们继续安装Let's Encrypt客户端软件Certbot。

第一步 - 安装Certbot

使用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-nginx

该Let's Encrypt客户端certbot就可以使用了。

第二步 - 设置Nginx

Certbot可以自动为Nginx配置SSL,但它需要能够在配置中找到正确的server块。它通过查找server_name与您请求证书的域匹配的指令来完成此操作。如果您刚开始使用新的Nginx安装,则可以更新默认配置文件:

代码语言:javascript
复制
sudo nano /etc/nginx/sites-available/default

找到现有的server_name行:

代码语言:javascript
复制
server_name localhost;

替换localhost为您的域名:

代码语言:javascript
复制
server_name example.com www.example.com;

保存文件并退出编辑器。使用以下命令验证配置编辑的语法:

代码语言:javascript
复制
sudo nginx -t

如果运行没有错误,请重新加载Nginx以加载新配置:

代码语言:javascript
复制
sudo service nginx reload

Certbot现在可以找到正确的server块并更新它。现在我们将更新防火墙以允许HTTPS流量。

第三步 - 获取SSL证书

Certbot通过各种插件提供了多种获取SSL证书的方法。Nginx插件将负责重新配置Nginx并在必要时重新加载配置:

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

certbot--nginx插件一起运行,-d用于指定我们希望证书有效的名称。

如果这是您第一次运行certbot,系统将提示您输入电子邮件地址并同意服务条款。执行此操作后,certbot将与Let的加密服务器通信,然后运行质询以验证您是否控制了您要为其申请证书的域。

如果成功,certbot将询问您要如何配置HTTPS设置:

代码语言:javascript
复制
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

选择你的选择然后点击ENTER。配置将更新,Nginx将重新加载以获取新设置。certbot将结束一条消息,告诉您进程是否成功以及您的证书存储位置:

代码语言:javascript
复制
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
   expire on 2017-10-23. To obtain a new or tweaked version of this
   certificate in the future, simply run certbot again with the
   "certonly" option. To non-interactively renew *all* of your
   certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:
​
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

现在可以下载,安装和配置您的证书。尝试使用https://重新加载您的网站并注意浏览器的安全指示器。它应该表示网站已正确保护,通常带有绿色锁图标。如果使用SSL Labs Server Test测试服务器,它将获得A级。

第四步 - 验证Certbot自动续订

Let's Encrypt的证书只有90天有效。这是为了鼓励用户自动执行证书续订过程。我们安装的certbot软件包通过systemd计时器每天运行两次“certbot renew”来为我们解决这个问题。在非系统发行版上,此功能由放置在/etc/cron.d的脚本提供。此任务每天运行两次,并将续订任何在到期后30天内的证书。

要测试更新过程,您可以用certbot执行以下操作:

代码语言:javascript
复制
sudo certbot renew --dry-run

如果您没有看到任何错误,那么您已经完成了设置。必要时,Certbot将续订您的证书并重新加载Nginx以获取更改。如果自动续订过程失败,Let’s Encrypt将向您指定的电子邮件发送一条消息,并在您的证书即将过期时发出警告。

结论

在本教程中,我们安装了 Let’s Encrypt 客户端certbot,为我们的域下载了SSL证书,配置了Nginx以使用这些证书,并设置了自动证书续订。如果您对使用Certbot有其他疑问,他们的文档是一个很好的去处。

想要了解更多关于Ubuntu的开源信息教程,请前往腾讯云+社区学习更多知识。

参考文献:《How To Secure Nginx with Let's Encrypt on Ubuntu 14.04》

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 准备
  • 第一步 - 安装Certbot
  • 第二步 - 设置Nginx
  • 第三步 - 获取SSL证书
  • 第四步 - 验证Certbot自动续订
  • 结论
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档