帮酷LOGO
0 0 评论
文章标签:blocks  Nginx  SET  Ubuntu  Server  encrypt  Block  

介绍

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

在本教程中,你将使用Certbot在ubuntu 16 04上为nginx获取一个免费的SSL证书,并将你的证书设置为自动续订。

前提条件

要遵循本教程,你需要:

Ubuntu 16.04的初始服务器设置教程设置的一台Ubuntu 16.04服务器,包括sudo非root用户和防火墙。

本教程将在整个过程中使用example.com

example.com 指向你的服务器IP地址,www.example.com 指向你的服务器IP地址,

Nginx按在Ubuntu 16.04上,如何安装Nginx方式安装 。

一个单独的Nginx服务器块文件,用于你的域,如下此Nginx服务器阻止Ubuntu 16.04的教程 ,本教程将使用 /etc/nginx/sites-available/example.com

步骤1 - 安装Certbot

使用let's Encrypt获得SSL证书的第一步是在服务器上安装Certbot软件。

首先,添加存储库。


sudo add-apt-repository ppa:certbot/certbot

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


sudo apt-get update

最后,使用apt-get安装Certbot包的Nginx 。


sudo apt-get install python-certbot-nginx

Certbot现在可以使用了,但是为了让它为Nginx配置SSL,我们需要验证Nginx的一些配置。

步骤2-确认Nginx的配置

Certbot需要能够在Nginx配置中找到正确的server块,以便能够自动配置SSL ,具体来说,它通过寻找与你要求证书的域匹配的server_name指令来执行此操作。

如果遵循Nginx服务器块的先决条件教程,则应该为你所在的域设置一个服务器块,/etc/nginx/sites-available/example.comserver_name指令已正确设置。

要检查,请使用nano或你喜欢的文本编辑器打开域的服务器块文件。


sudo nano /etc/nginx/sites-available/example.com

查找现有的server_name行,它应该是这样的:

/etc/nginx/sites-available/example.com

. . .
server_name example.com www.example.com;
. . .

如果有,你可以退出编辑器,然后继续下一步。

如果没有,则更新它以匹配,


sudo nginx -t

如果出现错误,请重新打开服务器块文件,检查有没有错误或丢失的字符,一旦文件的配置语法正确,重新加载Nginx以加载新配置。


sudo systemctl reload nginx

Certbot现在可以找到正确的server块,并且更新它。

接下来,我们更新防火墙以允许HTTPS通信。

步骤3 - 允许HTTPS通过防火墙

通过键入以下命令查看当前设置:


sudo ufw status

它可能看起来像这样,意味着只允许web服务器使用HTTP通信:


OutputStatus: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere 
Nginx HTTP ALLOW Anywhere 
OpenSSH (v6) ALLOW Anywhere (v6) 
Nginx HTTP (v6) ALLOW Anywhere (v6)

要使用HTTPS流量,可以允许Nginx完全配置文件,然后删除冗余Nginx HTTP配置文件余额:


sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'

状态现在应该是这样的:


sudo ufw status


OutputStatus: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)

我们现在准备运行Certbot并获取证书。

步骤4-获得SSL证书

Certbot通过各种插件提供了各种方式来获得SSL证书,Nginx插件将负责重新配置Nginx,并且在必要时重新装入配置:


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

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

如果这是第一次运行certbot,你将被提示输入电子邮件地址,并且同意你的服务条款,

如果成功,certbot将询问你如何配置你的HTTPS设置。


OutputPlease 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将包含一条消息,告诉你进程成功并存储证书的位置:


OutputIMPORTANT 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测试服务器,它将得到一个等级。

让我们通过测试更新过程来完成。

步骤5 - 验证Certbot自动续订

let's Encrypt's的证书有效期仅九十天。certbot包为我们提供了一个更新脚本,该脚本每天运行两次,并且会在过期后,三十天内自动续订证书。

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


sudo certbot renew --dry-run

如果你没有看到错误,则说明一切就绪。必要时,certbot将续订你的证书,并且重新加载Nginx以获取更改。如果自动更新进程失败,Let's Encrypt将向你指定的电子邮件发送消息,当你的证书即将过期时警告你。

结束语

本教程中,你安装了let's Encrypt客户端certbot,下载的域SSL证书,配置Nginx使用这些证书,并设置了自动证书更新,如果你对使用Certbot有更多的疑问,他们的文档是一个不错的起点。



文章标签:Server  SET  Ubuntu  Block  encrypt  Nginx  blocks  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语