如何加密Ubuntu 14.04来保护Nginx

如何加密Ubuntu 14.04来保护Nginx

介绍

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

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

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

先决条件

在学习本教程之前,您需要做一些事情。

  • 具有sudo权限的非root用户的Ubuntu 14.04服务器。你可以学习如何设置这样的用户帐户,按照我们最初的Ubuntu 14.04教程的服务器设置。
  • 安装Nginx,如何在Ubuntu 14.04 LTS上安装Nginx.
  • 您必须拥有或控制您希望使用该证书的注册域名。如果您还没有注册的域名,您可以注册一个域名注册商(例如Namecheap,GoDaddy等)。
  • 一个DNS记录,指向您的域的服务器的公共IP地址。你可以按照这个主机名教程了解如何添加它们的细节。这是必需的,因为让我们加密验证您拥有它颁发证书的域。例如,如果您想获取example.com的证书,则该域必须解析到您的服务器以使验证过程正常工作。我们的设置将使用example.comwww.example.com作为域名,所以这两个DNS记录都是必需的

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

###第一步 - 安装Certbot

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

我们的加密客户端现在已经可以使用了。

第二步 - 设置Nginx

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

$ sudo nano /etc/nginx/sites-available/default

找到现有的server_name行:

				/etc/nginx/sites-available/default
server_name localhost;

用你的域名替换localhost:

				/etc/nginx/sites-available/default
server_name example.com www.example.com;

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

$ sudo nginx -t

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

$ sudo service nginx reload

Certbot现在将能够找到正确的服务器块并更新它。 现在我们将更新我们的防火墙以允许HTTPS流量。

第三步 - 获得SSL证书

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

$ sudo certbot --nginx -d example.com -d www.example.com

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

如果这是您第一次运行certbot,系统将提示您输入电子邮件地址并同意服务条款。这样做之后,certbot将与Let's Encrypt服务器通信,然后运行一个质询来验证您是否控制了您要申请证书的域。

如果成功了,certbot会问你想如何配置你的HTTPS设置:

Output
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会收到一条消息,告诉你这个过程是成功的,你的证书存储在哪里:

Output
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实验室服务器测试来测试您的服务器,则将获得A级。

第四步 - 验证Certbot自动更新

我们加密证书只有九十天有效。这是为了鼓励用户自动化他们的证书更新过程。我们安装的certbot软件包通过systemd定时器每天运行两次“certbot renew”来处理这个问题。在非系统发行版中,此功能由位于/etc/cron.d中的脚本提供。此任务每天运行两次,并将在续期30天内更新任何证书。

此任务每天运行两次,并将在续期30天内更新任何证书。

$ sudo certbot renew --dry-run

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

结论

在本教程中,我们安装了Let's Encrypt客户端certbot,为我们的域下载了SSL证书,配置了Nginx使用这些证书,并设置了自动证书更新。如果您对使用Certbot有进一步的问题,他们的文档是一个很好的开始。

原文链接:https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-14-04

原文作者:Mitchell Anicas

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏潇涧技术专栏

Android Ndk and Opencv Development 1

从本节开始之后的几节将介绍关于Android NDK和OpenCV整合开发的内容,本节介绍Android NDK 和 OpenCV 整合开发的环境搭建以及人脸检...

912
来自专栏LinXunFeng的专栏

MAC OSX安装Python环境 + Visual Studio Code

833
来自专栏Linux运维学习之路

ssh服务、密钥登陆配置

环境内核信息: [root@zabbix-01 ~]# uname -a Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1...

28210
来自专栏编程

如何建立一个OpenVPN服务器在Ubuntu 14.04

当连接到不受信任的网络(例如酒店或咖啡店的WiFi)时,是否想从智能手机或笔记本电脑安全,安全地访问互联网?虚拟专用网络(VPN)允许您将不可信的网络私密安全地...

4431
来自专栏iOSDevLog

ssh 到 Termux

452
来自专栏iOS Developer

React Native在Mac上部署iOS开发环境

1255
来自专栏Laoqi's Linux运维专列

linux安全配置

今天清早登录服务器发现很多暴力狗(使用ssh端口破解登录密码),真不知道这些人有啥意思,破解了无非是把我的服务器当作肉鸡再去攻击其他服务器,目的无非就是证明你有...

2905
来自专栏琦小虾的Binary

Qt5.7.0 + OpenCV2.4.9 + ffmpeg在Ubuntu 14.04LTS下的配置

Qt5.7.0 + OpenCV2.4.9 + ffmpeg在Ubuntu 14.04LTS下的配置 分类: tags: Ubuntu Qt OpenCV ...

2806
来自专栏岑志军的专栏

(2)逆向环境搭建

1163
来自专栏木头编程 - moTzxx

VMWare14 安装Mac OS系统(图解)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

1473

扫码关注云+社区