zoukankan      html  css  js  c++  java
  • Nginx实现HTTP强制跳转HTTPS

    Info

    安装NGINX的还没来得及整理到这个博客,以后再来补,今天主要写跳转的实现,安装通过yum,仅供测试,生产建议编译;

    环境

    Centos7
    ssl
    nginx

    结果

    浏览器 -- 直接访问80 -- 跳转https ,

    安装nginx

    不要在意为什么不编译

    yum -y install epel*
    yum -y install nginx
    nginx -v # 检查是否安装成功
    

    生成证书(仅供测试用)

    
    mkdir -pv /usr/local/src/test
    cd /usr/local/src/test/
    openssl genrsa -des3 -out server.key 1024
    openssl req -new -key server.key -out server.csr
    openssl rsa -in server.key -out server_nopwd.key # nginx使用的私钥需要去除密码口令
    openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt
    

    这时 test目录下应该有四个文件

    mark

    修改NGINX配置文件

    现在我们修改一下nginx.conf 因为是测试所以修改全局文件了

    vim /etc/nginx/nginx.conf
    

    这里需要启用https的配置,

    mark

    现在我们启动服务测试下,

    systemctl stop firewalld ; systemctl restart nginx
    netstat -tunlp | grep 443
    

    启动服务如果报错请看清log 并且Double Check 你的配置文件,主要是证书名字和路径
    检查端口是否开启,
    接下来 找一台可以跟server通信的客户端 打开https://ip 测试。
    可以打开网页 并且是https 那么 https ---OK

    http跳转

    这里实现的方式有很多,

    这里介绍几种

    方式1 rewrite

    mark

    可以看出,这句话的意思是当你访问http时,通过uri重写的方式直接到https

    1,2两种写法,都可以,选一个自己觉得好看的

    但是,这是旧版本文档里的写法,

    新版本的NGINX已经不推荐这种方式;

    推荐方式为下面说的方法2

    方法2 return

    mark

    这种方式也很清晰,访问http时 ,return一个301 直接跳转https,原理就是跟你打网页 没有这个页面 404的效果类似

    mark

    August 7, 2017 1:01 AM

    END

  • 相关阅读:
    TP5学习笔记- 使用命令行创建控制器
    centos 7 下安装mysql5.7
    webserver的安装
    linux常用命令 服务器硬件资源信息
    SSH 安装/ config 配置以及免密码登录
    thinkphp ,laravel,yii2运行环境搭建.
    分享几个博客园代码样式的CSS配置(复制黏贴即可)
    vue中通过.sync修饰符实现子组件修改父组件数据
    vue中$attrs和$listeners以及inheritAttrs的用法
    Vue项目中实现用户登录及token验证
  • 原文地址:https://www.cnblogs.com/xth0331/p/9655576.html
Copyright © 2011-2022 走看看