本教程将教您如何安装Nginx并管理免费的“让我们加密TLS / SSL”证书。 如果您现在开始并且想要安全地安装服务器,建议您阅读本文 。
好的,让我们从一些定义开始,然后从魔术步骤开始:
- 让我们加密:是一个证书颁发机构(CA),它提供免费的数字证书以允许网站上的HTTPS。
- Nginx :是一种Web服务器,也可以用作负载平衡器,反向代理,邮件代理和HTTP缓存。
- HTTPS :(安全超文本传输协议)是HTTP协议在使用SSL / TLS协议的附加安全层上的实现。
- SSL / TLS协议:传输层安全性(TLS)及其前身安全套接字层(SSL)(现已弃用)是在计算机网络上提供通信安全性的应用程序协议。
- Certbot:是在服务器上运行的客户端(工具),用于获取和部署SSL证书。
为什么我应该有一个HTTPS网站? 您应该使用HTTPS的主要原因是,确保与服务器的连接是安全的。
好的,您只有一个HTML页面,没有任何动态内容。 因此,其他原因还包括:1)Google开始使用HTTPS作为排名因素,因此,如果您希望自己的网站在Google搜索中占据有利位置,则应考虑使用此功能。 2)Chrome对于非HTTPS的页面开始显示“不安全”警告,因此,如果您不想吓users用户,这就是拥有它的原因。
假设您已经安装并正在运行一个Ubuntu Web服务器,并且有一个指向它的域命名(在本教程中,域名为临时Website.tk),我们将在其中安装Nginx。
安装Nginx和Certbot
连接到您的服务器。 键入以下命令以安装Nginx:
$ sudo apt-get install nginx
安装后,您可以访问您的域并检查是否有可用的内容(没有HTTPS):
我们将使用Certbot信息库来获取软件包的最新版本。 让我们添加它:
$ sudo add-apt-repository ppa:certbot/certbot
更新包装清单以获取最新的物品:
$ sudo apt-get update
安装Certbot的Nginx软件包:
$ sudo apt-get install python-certbot-nginx
生成证书并配置Nginx
最后,让Certbot获得证书并自动将其配置给我们:
$ sudo certbot --nginx -d temporary-website.tk
对于此步骤,您将需要添加电子邮件(如果证书即将过期,则会从Let's Encrypt接收通知)。 您将有两个选择:是否将请求从HTTP重定向到HTTPS。 我选择了重定向。
如果您之前设置了防火墙,请阅读下面的“允许防火墙”部分,如果没有,仅此而已,您的网站将使用HTTPS。 ????
该网站现在在HTTPS下工作。 现在让我们做更多的改进。
允许防火墙
如果按照本文中的步骤进行操作,现在需要允许HTTPS连接:
$ sudo ufw allow https
更新Diffie-Hellman参数
如果按照前面的步骤进行操作,则可以忽略此部分。 但是,如果您只是一个好奇的读者,并且已经在服务器上实现了这些步骤,那么提示是检查Diffie-Hellman参数的大小。 一些旧的安装具有1024位参数, 一些研究和NIST的建议是将Diffie-Hellman参数的大小增加到2048位。
要创建更长的2048位参数,请运行以下代码。 我建议您在文件夹etc/letsencrypt/上运行此命令,因为这是存储默认**的位置( ssl-dhparams.pem )
$ openssl dhparam -out ssl-dhparams-2048.pem 2048
生成这些参数后,我们需要更改Nginx的配置。 转到文件夹/etc/nginx/sites-enabled/并将文件default编辑为以下内容:
server {
...
ssl_dhparam /etc/letsencrypt/ssl-dhparams-2048.pem;
...
}现在重新启动Nginx:
$ sudo service nginx restart
更新SSL证书
让我们加密证书每90天过期一次。 因此,您需要经常更新证书。 安装的Certbot软件包随附cron作业,该作业会在证书过期之前自动对其进行续订。
运行以下命令以测试续订过程(参数--dry-run测试而不将任何证书保存到磁盘):
sudo certbot renew --dry-run
如果成功,您可以放松身心并享受生活。 Certbot将确保为您定期更新证书。
如果您想阅读更多我的文章,请 跟我 来 。???? 如果您喜欢这篇文章,请确保喜欢它给了我很多鼓掌-这对作家来说意味着世界。
FlávioH. de Freitas是一位企业家,工程师,技术爱好者,梦想家和旅行者。 曾在巴西 , 硅谷和欧洲担任首席技术官 。