Centos7.3 安装部署Nginx并配置https的方法步骤

  

CentOS 7.3 安装部署 Nginx 并配置 HTTPS 的方法步骤如下:

安装Nginx

在 CentOS 7.3 上安装 Nginx 的方法有两种,下面将分别进行介绍:

方法一:使用 yum 命令进行安装

sudo yum install epel-release
sudo yum install nginx

方法二:手动编译安装

sudo yum groupinstall 'Development Tools'
sudo yum install pcre-devel openssl-devel zlib-devel
wget http://nginx.org/download/nginx-1.13.6.tar.gz
tar zxvf nginx-1.13.6.tar.gz
cd nginx-1.13.6
sudo ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
sudo make
sudo make install

安装完成后,使用如下命令启动 Nginx:

sudo systemctl start nginx

此时,可以在浏览器中输入服务器 IP 地址或域名,检查是否成功安装 Nginx。

配置 HTTPS

由于 HTTPS 是基于 SSL/TLS 加密的,因此需要使用证书。下面将分别介绍如何生成 SSL 证书和配置 Nginx 支持 HTTPS。

生成 SSL 证书

使用 OpenSSL 工具生成自签名的 SSL 证书,可以使用如下命令:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt

其中,nginx.key 为生成的私钥文件,nginx.crt 为生成的证书文件。在生成过程中,需要输入一些信息,比如组织、邮箱等,可以根据实际情况填写即可。

配置 Nginx 支持 HTTPS

使用如下命令打开默认的 Nginx 配置文件:

sudo vi /etc/nginx/conf.d/default.conf

在该文件中,将以下代码插入到“server”代码块中:

listen 443 ssl;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_ciphers AES128-SHA256:AES256-SHA256:RC4-SHA:DES-CBC3-SHA;

以上代码将 Nginx 配置为监听 443 端口,启用 SSL 加密,并指定 SSL 证书和支持的 SSL 协议和加密方式。

示例说明

示例一:使用默认配置文件

如果使用默认的 Nginx 配置文件,只需按照上述方法生成证书、修改配置文件即可。例如,生成的 ssl 证书存放在 /etc/nginx/ssl/ 目录下,将以下代码插入到默认配置文件(/etc/nginx/conf.d/default.conf)的“server”代码块中:

listen 443 ssl;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_ciphers AES128-SHA256:AES256-SHA256:RC4-SHA:DES-CBC3-SHA;

示例二:为多个站点生成证书

如果需要为多个站点生成不同的 SSL 证书,则需要在 Nginx 配置文件中添加多个“server”代码块,并指定不同的域名和证书。以下是一个示例代码:

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate_key /etc/nginx/ssl/example.key;
    ssl_certificate /etc/nginx/ssl/example.crt;
    ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
    ssl_ciphers AES128-SHA256:AES256-SHA256:RC4-SHA:DES-CBC3-SHA;
}

server {
    listen 443 ssl;
    server_name blog.example.com;
    ssl_certificate_key /etc/nginx/ssl/blog.key;
    ssl_certificate /etc/nginx/ssl/blog.crt;
    ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
    ssl_ciphers AES128-SHA256:AES256-SHA256:RC4-SHA:DES-CBC3-SHA;
}

以上示例代码将 Nginx 配置为为 example.comblog.example.com 两个域名都启用 HTTPS,并使用不同的证书加密。

相关文章