Ubuntu Server 18.04上构建支持TLS的Nginx

栏目: 服务器 · Nginx · 发布时间: 5年前

内容简介:开箱即用,Nginx不支持TLS,但本文将引导您完成构建Nginx以支持安全协议的过程。Nginx已经成为一个非常受欢迎的Web服务器。 有充分的理由。 它的速度非常快,并且可以很好地扩展。 然而,使用这个开源Web浏览器的一个注意事项是,它不支持开箱即用的传输层安全性(TLS)。可以在支持TLS的地方构建Nginx。我将带你完成这样做的过程。我将在Ubuntu Server 18.04/Ubuntu 18.10上演示。该过程完全从命令行处理,不超过30分钟的时间既可以完成。

开箱即用,Nginx不支持TLS,但本文将引导您完成构建Nginx以支持安全协议的过程。

Nginx已经成为一个非常受欢迎的Web服务器。 有充分的理由。 它的速度非常快,并且可以很好地扩展。 然而,使用这个开源Web浏览器的一个注意事项是,它不支持开箱即用的传输层安全性(TLS)。

可以在支持TLS的地方构建Nginx。我将带你完成这样做的过程。我将在Ubuntu Server 18.04/Ubuntu 18.10上演示。该过程完全从命令行处理,不超过30分钟的时间既可以完成。

为何选择TLS?

为什么需要TLS?答案很简单 - 安全性和性能。随着最新版TLS的发布,往返握手更快,更安全。由于新的零往返模式(0-RTT会话恢复),连接时间将大大减少(对移动用户来说是一个很大的改进)。借助Nginx中内置的这种TLS新风格,您可以依赖更安全的平台,这要归功于TLS开发人员还删除了对旧密码套件的支持。

但是你如何将它构建到Nginx中呢?让我们来看看。下面正式开始。

添加官方Nginx存储库

首先要做的是添加官方Nginx存储库。打开终端窗口并发出以下两个命令:

wget http://nginx.org/keys/nginx_signing.key

sudo apt-key add nginx_signing.key

Ubuntu Server 18.04上构建支持TLS的Nginx

接下来,使用以下命令为Nginx创建apt源文件:

sudo nano /etc/apt/sources.list.d/nginx.list

在该新文件中,粘贴以下内容:

deb [arch=amd64] http://nginx.org/packages/mainline/ubuntu/ bionic nginx

deb-src http://nginx.org/packages/mainline/ubuntu/ bionic nginx

Ubuntu Server 18.04上构建支持TLS的Nginx

保存并关闭该文件。

使用以下命令更新apt:

sudo apt update

下载Nginx源代码

现在我们必须下载Nginx源代码。 为此,首先使用以下命令创建一个新目录:

sudo mkdir /usr/local/src/nginx

使用命令cd /usr/local/src/nginx切换到该新目录并发出以下命令:

sudo apt install dpkg-dev

sudo apt source nginx

发出ls命令并记下Nginx的版本号(对于我的演示,该数字是1.15.5)。

克隆OpenSSL

现在我们需要从GitHub克隆OpenSSL。 使用以下命令执行此操作:

cd /usr/local/src

sudo apt install gitsudo git clone

https://github.com/openssl/openssl.git

cd openssl

使用git,使用以下命令找出OpenSSL的最新分支:

git branch -a

对于此演示,该分支是1_1_1稳定的。

使用以下命令检出该分支:

sudo git checkout OpenSSL_1_1_1-stable

配置Nginx编译规则

要为Nginx启用SSL,我们必须编辑编译规则。发出命令:

sudo nano /usr/local/src/nginx/nginx-1.15.5/debian/rules

注意:确保使用您下载的Nginx版本。

找到以下行:

config.status.nginx: config.env.nginx

在CFLAGS部分的末尾,添加以下内容:

--with-openssl=/usr/local/src/openssl

以上将在“$(LDFLAGS)”之后直接添加,如下所示:

"$(LDFLAGS)" --with-openssl=/usr/local/src/openssl

保存并关闭该文件。

编译Nginx

在我们构建Nginx之前,我们必须防止构建错误。发出命令:

sudo nano /usr/local/src/nginx/nginx-1.15.5/auto/cc/gcc

找到并注释掉在下一行的开头添加一个#符号:

CFLAGS="$CFLAGS -Werror"

抢先防止构建错误。

保存并关闭该文件。

现在我们开始编译Nginx。使用以下命令切换到Nginx源目录:

cd /usr/local/src/nginx/nginx-1.15.5

使用以下命令构建Nginx依赖项:

sudo apt build-dep nginx

最后,使用以下命令构建Nginx:

sudo dpkg-buildpackage -b -uc -us

上面的命令大约需要10-20分钟,所以要么坐下来观看乐趣,要么照顾其他任务。

安装Nginx

我们现在可以使用以下命令安装支持TLS的Nginx:

cd /usr/local/src/nginx/

sudo dpkg -i nginx_1.15.5-1~bionic_amd64.deb

注意:如果您已安装Nginx,则需要使用命令sudo apt remove nginx nginx-common nginx-full删除它。

命令完成后,发出以下命令以确保构建包含OpenSSL:

sudo nginx -V

您应该看到包含OpenSSL。

OpenSSL已经进入Nginx。

恭喜,TLS现已进入Nginx。下次我们将介绍如何在Nginx服务器块中启用此功能,以便您可以开始使用Nginx提供启用TLS的站点。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-11/155249.htm


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java JDK6学习笔记

Java JDK6学习笔记

林信良 / 清华大学出版社 / 2007-4 / 59.90元

《Java JDK6学习笔记》是作者良葛格本人近几年来学习Java的心得笔记,结构按照作者的学习脉络依次展开,从什么是Java、如何配置Java开发环境、基本的Java语法到程序流程控制、管理类文件、异常处理、枚举类型、泛型、J2SE中标准的API等均进行了详细介绍。本书还安排了一个“文字编辑器”的专题制作。此外,Java SE6的新功能,对Java lang等套件的功能加强,以及JDBC4.0、......一起来看看 《Java JDK6学习笔记》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码