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

转载于:https://www.cnblogs.com/xth0331/p/9655576.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值