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 服务部署网络服务更加安全可靠。
前提条件
配置 HTTPS 服务时,您需要预先在 ECS 实例所在的安全组开启 TCP 443 通信端口。参阅 添加安全组规则。
若您需要同时测试 HTTP 访问模式,您需要预先在 ECS 实例所在的安全组开启 TCP 80 通信端口。参阅 添加安全组规则。
配置 Nginx + HTTPS 服务
根据以下步骤配置 Nginx + HTTPS 服务:
- 远程连接 并登录到 Linux 实例。
- 运行 cd /usr/local 切换目录。
- 运行以下命令安装 PCRE 和 zlib 库。
a. yum -y install pcre pcre-devel
b. 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。
a. ./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
b. 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 / {
proxy_pass http://127.0.0.1:8080/;
}
}
Nginx 配置Http和Https共存
server {
listen 80 default backlog=2048;
listen 443 ssl;
server_name wosign.com;
root /var/www/html;
ssl_certificate /usr/local/Tengine/sslcrt/ wosign.com.crt;
ssl_certificate_key /usr/local/Tengine/sslcrt/ wosign.com .Key;
}
- 运行 /usr/local/nginx/sbin/nginx 启动 Nginx。
测试结果
打开浏览器测试配置结果:
● 使用 ECS 实例的公网 IP 地址 测试。
● 使用 HTTPS + ECS 实例的公网 IP 地址 测试。