Nginx 搭建 https Web 服务器

前期准备

  • 域名、服务器
  • SSL 证书
  • SSH 客户机
  • SFTP 客户端

本教程环境

  • 阿里云服务器 CentOS Linux release 7.3.1611 (Core)
  • 阿里云一年免费 Symantec SSL 证书
  • FinalShell SSH 客户机
  • WinSCP SFTP 客户端

第一步 - 安装 Nginx

  1. 使用 FinalShell 连接到服务器
  1. Nginx 不在默认的 yum 源中,所以首先需要添加 yum 源
$ sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  1. 安装 Nginx
$ sudo yum install nginx
  1. 配置 Nginx 服务
// 设置开机启动
$ sudo systemctl enable nginx
// 启动服务
$ sudo systemctl start nginx
// 重启服务
$ sudo systemctl restart nginx
// 重新加载
$ sudo systemctl reload nginx
// 设置反向代理
$ sudo setsebool httpd_can_network_connect 1 

第二步 - 上传证书

  1. 依次找到/etc/nginx/文件夹,并创建一个存储证书的文件夹cert

  2. 或者使用命令创建

$ sudo mkdir -p /etc/nginx/cert
  1. 把购买的证书(.pem.key),上传到cert文件夹下
  2. 回到上一级目录,找到conf.d文件夹,新建一个443.conf文件

HTTPS 的默认端口号是 443,所以需要配置网站服务器监听 443 端口。

  1. 将下面的代码粘贴到443.conf
server {
 listen         443;
 server_name    localhost;
 ssl            on;
 root           /usr/local/site/dist;
 index          index.html index.htm;

 ssl_certificate            /etc/nginx/cert/limengzhe.work.pem;
 ssl_certificate_key        /etc/nginx/cert/limengzhe.work.key;
 ssl_session_timeout        5m;
 ssl_ciphers                ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
 ssl_protocols              TLSv1 TLSv1.1 TLSv1.2;
 ssl_prefer_server_ciphers  on;

 location / {
     root /usr/local/site/dist;
     index index.html index.htm;
 }
}

其中,root 指向静态html的目录,index指向需要出现在首页的html文件,请按需修改。

  1. 重新加载 Nginx 服务
$ sudo systemctl reload nginx
  1. 将 443 端口添加到安全组规则


  2. 现在打开你的域名即可看到已经支持https访问



第三步 - 默认指向 https

  1. 打开当前目录下的default.conf

  2. server_name下一行输入return 301 https://$host$request_uri;并保存

  3. 此时即使输入http://也会跳转至https://

  4. 到这一步, Nginx 构建 https 网站也就完成了,预祝各位成功。

你可能感兴趣的:(Nginx 搭建 https Web 服务器)