Nginx系列-6.配置Nginx的HTTPS

Nginx系列-6.配置Nginx的HTTPS

目录 - Nginx系列

Nginx系列-1.Linux下安装Nginx
Nginx系列-2.配置LNMP(Linux、Nginx、MySQL、PHP)架构
Nginx系列-3.配置Nginx虚拟主机
Nginx系列-4.Nginx日志配置及日志切割
Nginx系列-5.配置Nginx的防盗链
Nginx系列-6.配置Nginx的HTTPS
Nginx系列-7.配置Nginx使用uwsgi支持web.py框架
Nginx系列-8.配置Nginx+Apache实现动静分离
Nginx系列-9.配置NFS实现Nginx实现动静分离
Nginx系列-10.采用Nginx搭建正向代理服务
Nginx系列-11.配置Nginx反向代理和负载均衡


实验环境
一台最小化安装的 CentOS7 虚拟机
nginx 的版本为 1.12.2
一台某厂商的 CentOS7 云服务器

一、本地实验:准备环境

  1. 修改配置文件,建立一个虚拟主机

    vim /etc/nginx/conf.d/vhosts.conf

    添加如下内容

    server {
        listen  80;
        server_name site1.test.com;
        root    /var/wwwroot;
        index   index.html;
        location / {
        }
    }

  2. 建立网站根目录,并添加主页文件
    mkdir /var/wwwroot
    cd /var/wwwroot
    echo -e "main site" >> index.html
  3. 重启nginx服务
    systemctl restart nginx
  4. 关闭防火墙
    setenforce 0
    systemctl stop firewalld
    systemctl disable firewalld
  5. 在宿主机修改C:\Windows\System32\drivers\etc\hosts文件
    修改site1.test.com的映射
    192.168.204.133   site1.test.com

二、本地实验:颁发网站认证证书

  1. 检查网站认证证书

    rpm -qa | grep ssl

  2. 建立/etc/nginx/ssl目录,并生成RSA秘钥
    mkdir /etc/nginx/ssl
    cd /etc/nginx/ssl
    openssl genrsa -out server.key 2048

  3. 生成服务器CSR证书请求文件,注意和站点(server_name)名称一致
    按提示输入信息
    openssl req -new -key server.key -out server.csr

  4. 生成服务器认证证书
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

三、本地实验:配置HTTPS网站

  1. 编辑nginx配置文件

    vim /etc/nginx/conf.d/vhosts.conf

    修改为如下内容

    server {
        listen  443;
        server_name site1.test.com;
        root    /var/wwwroot;
        index   index.html;
        # ssl configure
        ssl on;
        ssl_certificate /etc/nginx/ssl/server.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key;
        # location
        location / {
        }
    }

  2. 重启nginx服务
    systemctl restart nginx
  3. 在宿主机访问https://site1.test.com
  4. 查看证书内容

四、上云实验:在腾讯云申请并配置ssl证书

  1. 登录腾讯云
    点击访问 腾讯云
  2. 依次点击产品->域名与网站->SSL证书
  3. 选择域名型免费版(DV)
  4. 填写域名和邮箱地址
  5. 验证域名,可以选择DNS验证文件验证,这里选择的文件验证
  6. 根据提示,在/.well-known/pki-validation/目录下建立fileauth.txt文件,并添加相关内容
  7. 等待审核通过
  8. 点击证书详情,获取证书
  9. 安装证书
    将域名 www.domain.com 的证书文件1_www.domain.com_bundle.crt 、私钥文件2_www.domain.com.key保存到同一个目录,例如/ect/nginx/ssl目录下。
    更新配置文件如下
    server {
        listen 443;
        server_name www.domain.com; #填写绑定证书的域名
        ssl on;
        ssl_certificate /etc/nginx/ssl/1_www.domain.com_bundle.crt;
        ssl_certificate_key /etc/nginx/ssl/2_www.domain.com.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
        ssl_prefer_server_ciphers on;
        location / {
            root   html; #站点目录
            index  index.html index.htm;
        }
    }


    配置完成后,先用bin/nginx –t来测试下配置是否有误,正确无误的话,重启nginx。就可以使 https://www.domain.com 来访问了。

  10. http跳https(可选)
    对于用户不知道网站可以进行https访问的情况下,让服务器自动把http的请求重定向到https。
    在服务器这边的话配置的话,可以在页面里加js脚本,也可以在后端程序里写重定向,当然也可以在web服务器来实现跳转。Nginx是支持rewrite的(只要在编译的时候没有去掉pcre)
    在http的server里增加
    rewrite ^(.*) https://$host$1 permanent;

    这样就可以实现80进来的请求,重定向为https了。

  11. 重启nginx服务
    systemctl restart nginx
  12. 测试访问
    访问http://[your_domain]可以跳转到https端口上
    访问https://[your_domain]亦可正常访问

原文地址:http://blog.51cto.com/tong707/2126810

时间: 2024-10-09 07:10:23

Nginx系列-6.配置Nginx的HTTPS的相关文章

Nginx系列-5.配置Nginx的防盗链

Nginx系列-5.配置Nginx的防盗链 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux.Nginx.MySQL.PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日志配置及日志切割 Nginx系列-5.配置Nginx的防盗链 Nginx系列-6.配置Nginx的HTTPS Nginx系列-7.配置Nginx使用uwsgi支持web.py框架 Nginx系列-8.配置Nginx+Apa

Nginx系列-8.配置Nginx+Apache实现动静分离

Nginx系列-8.配置Nginx+Apache实现动静分离 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux.Nginx.MySQL.PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日志配置及日志切割 Nginx系列-5.配置Nginx的防盗链 Nginx系列-6.配置Nginx的HTTPS Nginx系列-7.配置Nginx使用uwsgi支持web.py框架 Nginx系列-8.配置

Nginx系列-11.配置Nginx反向代理和负载均衡

Nginx系列-11.配置Nginx反向代理和负载均衡 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux.Nginx.MySQL.PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日志配置及日志切割 Nginx系列-5.配置Nginx的防盗链 Nginx系列-6.配置Nginx的HTTPS Nginx系列-7.配置Nginx使用uwsgi支持web.py框架 Nginx系列-8.配置Ngi

Nginx系列-2.配置LNMP(Linux、Nginx、MySQL、PHP)架构

Nginx系列-2.配置LNMP(Linux.Nginx.MySQL.PHP)架构 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux.Nginx.MySQL.PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日志配置及日志切割 Nginx系列-5.配置Nginx的防盗链 Nginx系列-6.配置Nginx的HTTPS Nginx系列-7.配置Nginx使用uwsgi支持web.py框架 N

Nginx系列-9.配置NFS实现Nginx实现动静分离

Nginx系列-9.配置NFS实现Nginx实现动静分离 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux.Nginx.MySQL.PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日志配置及日志切割 Nginx系列-5.配置Nginx的防盗链 Nginx系列-6.配置Nginx的HTTPS Nginx系列-7.配置Nginx使用uwsgi支持web.py框架 Nginx系列-8.配置Ng

Nginx系列-10.采用Nginx搭建正向代理服务

Nginx系列-10.采用Nginx搭建正向代理服务 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux.Nginx.MySQL.PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日志配置及日志切割 Nginx系列-5.配置Nginx的防盗链 Nginx系列-6.配置Nginx的HTTPS Nginx系列-7.配置Nginx使用uwsgi支持web.py框架 Nginx系列-8.配置Ngin

【Nginx】简单配置Nginx代理

1.下载Nginx.解压到某个地方 2.常用命令讲解 nginx -t:检查nginx.conf文件是否配置正确 nginx -s reload:重新加载配置文件,每次修改配置文件后reload一下. 关闭:nginx -s stop    或者    nginx -s quit 3.解决nginx.pid报错 执行:nginx -c 配置文件路径,会自动在文件nginx.pid中生成pid 之后就正确咯. 4.启动 start ngnix 出现闪退,  原因:80端口被占用 查看下80端口使用

nginx系列5:nginx的请求处理流程

nginx的请求处理流程 如下图: nginx可以处理来自web(http),Email,TCP/UDP的三类请求. nginx底层使用非阻塞的事件驱动引擎,结合状态机来完成异步通知,其中处理Http请求的是HTTP状态机. 原文地址:https://www.cnblogs.com/mcgrady/p/10260142.html

Nginx系列-4.Nginx日志配置及日志切割

Nginx系列-4.Nginx日志配置及日志切割 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux.Nginx.MySQL.PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日志配置及日志切割 Nginx系列-5.配置Nginx的防盗链 Nginx系列-6.配置Nginx的HTTPS Nginx系列-7.配置Nginx使用uwsgi支持web.py框架 Nginx系列-8.配置Nginx+