CentOS 7.4 实例配置 Nginx + HTTPS 服务

基于 TCP(以及UDP)协议的 HTTPS(Hyper Text Transfer Protocol Secure)服务,相比 HTTP(Hyper Text Transfer Protocol)服务更安全的原因,在于 HTTPS 的通信协议是由 TLS (Transport Layer Security)或者 SSL(Secure Sockets Layer)加密完成的。因此,使用 HTTPS 服务部署网络服务更加安全可靠。

本文介绍了如何在 CentOS 7.4 实例环境中安装配置 Nginx 的 HTTPS 服务。若您的 ECS 实例为其他 Linux 发行版,操作有部分差异。


前提条件

配置 HTTPS 服务时,您需要预先在 ECS 实例所在的安全组开启 TCP 443 通信端口。参阅 添加安全组规则。

若您需要同时测试 HTTP 访问模式,您需要预先在 ECS 实例所在的安全组开启 TCP 80 通信端口。参阅 添加安全组规则。

配置 Nginx + HTTPS 服务

根据以下步骤配置 Nginx + HTTPS 服务:

  1. 远程连接 并登录到 Linux 实例。

  2. 运行 cd /usr/local 切换目录。

  3. 运行以下命令安装 PCRE 和 zlib 库。

     
    1. yum -y install pcre pcre-devel
    2. yum install -y zlib-devel
  4. 前往 https://nginx.org/download/ 下载 Nginx。如示例中 nginx-1.9.9.tar.gz 的下载地址为 http://nginx.org/download/nginx-1.9.9.tar.gz。

    运行 wget http://nginx.org/download/nginx-1.9.9.tar.gz 下载 Nginx。

    CentOS 7.4 实例配置 Nginx + HTTPS 服务_第1张图片

  5. 运行 tar -xvzf nginx-1.9.9.tar.gz 解压安装包。

  6. 前往 https://www.openssl.org/source 下载 OpenSSL。如示例中 openssl-1.1.0g.tar.gz 的下载地址为 https://www.openssl.org/source/openssl-1.1.0g.tar.gz。

    运行 wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz 下载 OpenSSL。

    CentOS 7.4 实例配置 Nginx + HTTPS 服务_第2张图片

  7. 运行 tar -xvzf openssl-1.1.0g.tar.gz 解压安装包。

  8. 运行 cd nginx-1.9.9 切换目录。

  9. 依次运行以下命令配置 Nginx。

    当下面命令失败时,可以使用 yum install -y openssl openssl-devel  再次执行
    1. ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --with-openssl=/usr/local/openssl-1.1.0g
    2. make && make install

    注意
    您需要根据自己下载的 OpenSSL 版本号更改命令中的 /usr/local/openssl-1.1.0g。

    Configure

  10. 运行 openssl req -new -x509 -nodes -out server.crt -keyout server.key 生成证书,并根据您的需要填写信息。

    CentOS 7.4 实例配置 Nginx + HTTPS 服务_第3张图片

  11. 运行 vi /usr/local/nginx/conf/nginx.conf 修改 Nginx 配置文件,示例使用了 vi /usr/local/nginx-1.9.9/conf/nginx.conf 命令。

    按下 i 键进入编辑,复制并粘贴以下内容后,按 Esc 并输入 :wq 保存退出。

     
    1. server {
    2. listen 443 ssl;
    3. server_name localhost;
    4. ssl_certificate server.crt;
    5. ssl_certificate_key server.key;
    6. ssl_session_cache shared:SSL:1m;
    7. ssl_session_timeout 5m;
    8. ssl_ciphers HIGH:!aNULL:!MD5;
    9. ssl_prefer_server_ciphers on;
    10. location / {
    11. root html;
    12. index index.html index.htm;
    13. }
    14. }

    CentOS 7.4 实例配置 Nginx + HTTPS 服务_第4张图片

  12. 运行 /usr/local/nginx/sbin/nginx 启动 Nginx。

测试结果

打开浏览器测试配置结果:

  • 使用 ECS 实例的公网 IP 地址 测试。

    CentOS 7.4 实例配置 Nginx + HTTPS 服务_第5张图片

  • 使用 HTTPS + ECS 实例的公网 IP 地址 测试。

    CentOS 7.4 实例配置 Nginx + HTTPS 服务_第6张图片

你可能感兴趣的:(ngnix,ngnix,linux,centos)