基于 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 服务:
-
远程连接 并登录到 Linux 实例。
-
运行
cd /usr/local
切换目录。 -
运行以下命令安装 PCRE 和 zlib 库。
yum -y install pcre pcre-devel
yum install -y zlib-devel
-
前往 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。 -
运行
tar -xvzf nginx-1.9.9.tar.gz
解压安装包。 -
前往 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。 -
运行
tar -xvzf openssl-1.1.0g.tar.gz
解压安装包。 -
运行
cd nginx-1.9.9
切换目录。 -
依次运行以下命令配置 Nginx。
当下面命令失败时,可以使用 yum install -y openssl openssl-devel 再次执行
./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
make && make install
注意:
您需要根据自己下载的 OpenSSL 版本号更改命令中的 /usr/local/openssl-1.1.0g。 -
运行
openssl req -new -x509 -nodes -out server.crt -keyout server.key
生成证书,并根据您的需要填写信息。 -
运行
vi /usr/local/nginx/conf/nginx.conf
修改 Nginx 配置文件,示例使用了vi /usr/local/nginx-1.9.9/conf/nginx.conf
命令。按下
i
键进入编辑,复制并粘贴以下内容后,按Esc
并输入:wq
保存退出。server {
listen 443 ssl;
server_name localhost;
ssl_certificate server.crt;
ssl_certificate_key server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
-
运行
/usr/local/nginx/sbin/nginx
启动 Nginx。
测试结果
打开浏览器测试配置结果: