Nginx服务器添加https证书 - Sanarous的博客

Nginx服务器添加https证书

以下只是作为一个踩坑笔记,做了几次老是忘,所以决定记录下来。

  • 系统版本:Ubuntu 18.03
  • Nginx 版本: 1.8.0

Nginx 已经安装完成,并且可以以 HTTP 形式访问域名,目前需求是给 Nginx 安装一个 SSL 证书,使得域名强制使用 HTTPS 进行访问。

首先看一下已经安装好的 Nginx 配置信息,我的 Nginx 在 /usr/local/nginx 下:

1
/usr/local/nginx/sbin/nginx -V

结果是这样的:

1
configure arguments: --prefix=/usr/local/nginx

也就是首次 configure 后的配置信息,所以我们需要在其中添加 ssl 模块。

切换到源码包,如果没有的话重新解压一份 nginx-1.8.0.tar.gz 的压缩包,比如重新解压一份到 /home/ubuntu 目录下:

1
cd /home/ubuntu/nginx-1.8.0

然后重新 configure 一下:

1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

configure 后如果报错

1
objs/Makefile:460: recipe for target 'objs/src/core/ngx_murmurhash.o' failed

我们只需要切换到 nginx 源码包下面的:

1
vim objs/Makefile

然后去掉第三行的 -Werror 就可以继续往下了。

下一步就是 make 编译。

注意不要再 make install 了,因为再 install 就会覆盖我们之前安装的 nginx。

我们先将原来的 nginx 复制一份:

1
sudo cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

然后再把重新 configure 后的 nginx 复制一份过去,注意此时原来的 nginx 要在停止状态。

1
sudo cp objs/nginx /usr/local/nginx/sbin/nginx

我们可以看一下重新配置的 nginx 信息验证一下:

1
/usr/local/nginx/sbin/nginx -V

如果 configure arguments 后带了 http_ssl_module,那么说明安装成功了!

我们再去修改一下 nginx.conf 的配置文件信息:

1
vim /usr/local/nginx/conf/nginx.conf

将原本注释的 http 中的 ssl 模块打开,然后在 conf 文件夹下使用 mkdir cert 新建一个存放 ssl 证书的文件,然后在配置文件中引用即可。如下:

配置好需要配置的信息,保存后使用 /usr/local/nginx/sbin/nginx -t验证配置文件是否有问题,如果没问题会显示 test id successful!就表示已经配置成功了。

最后使用./nginx 就可以重新启动 nginx 了!然后就可以强制 HTTPS 访问配置的域名了!

如果这篇文章对您很有帮助,不妨
-------------    本文结束  感谢您的阅读    -------------
0%