阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu Server 18.04上构建支持TLS的Nginx

130次阅读
没有评论

共计 2163 个字符,预计需要花费 6 分钟才能阅读完成。

开箱即用,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 的站点。

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2163字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中