nginx 强制使用https访问(http跳转到https)
nginx强制使用https访问(http跳转到https)
基于nginx搭建了一个https访问的虚拟主机,监听的域名是test.com,但是很多用户不清楚https和http的区别,会很容易敲成http://test.com,这时会报出404错误,所以我需要做基于test.com域名的http向https的强制跳转。
1.生成RSA密钥的方法
openssl genrsa -des3 -out privkey.pem 2048 |
这个命令会生成一个2048位的密钥,同时有一个des3方法加密的密码,如果你不想要每次都输入密码,可以改成:
openssl genrsa -out privkey.pem 2048 |
2、生成一个证书请求
建议用2048位密钥,少于此可能会不安全或很快将不安全:
openssl req -new -key privkey.pem -out cert.csr |
这个命令将会生成一个证书请求,当然,用到了前面生成的密钥privkey.pem文件
这里将生成一个新的文件cert.csr,即一个证书请求文件,你可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。CA会给你一个新的文件cacert.pem,那才是你的数字证书。
如果是自己做测试,那么证书的申请机构和颁发机构都是自己。就可以用下面这个命令来生成证书:
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095 |
这个命令将用上面生成的密钥privkey.pem生成一个数字证书cacert.pem
以上原文:http://blog.csdn.net/lgm252008/article/details/5402250
利用nginx的497状态码跳转到https
当此虚拟站点只允许https访问时,当用http访问时nginx会报出497错误码;
利用error_page命令将497状态码的链接重定向到https://test.com这个域名上;
server { listen 443; #ssl端口 listen 80; #用户习惯用http访问,加上80,后面通过497状态码让它自动跳到443 server_name test.com; ssl on; #为一个server{......}开启ssl支持 ssl_certificate /etc/nginx/test.pem; #指定PEM格式的证书文件 ssl_certificate_key /etc/nginx/test.key; #指定PEM格式的私钥文件 error_page 497 https://$host$uri?$args; #让http请求重定向到https请求 } |
把nginx服务重启后,用浏览器访问,直接输入test.com,即可跳转到https上。
第二种方法:利用 index.html网页进行跳转
在nginx的配置文件中,新增加一个虚拟机,端口为80;
server { listen 80; server_name test.com; location / { root /data/nginx/; #index.html放在虚拟主机监听的根目录下 } error_page 404 https://test.com/; #将404的页面重定向到https的首页 } |
设置虚拟机中的主页内容:index.html
|
配置好后,把nginx服务重启,用浏览器输入test.com,即可跳转到https上。
以上原文:http://www.cnblogs.com/yun007/p/3739182.html
转载于:https://blog.51cto.com/cuixiang/1653563
nginx 强制使用https访问(http跳转到https)相关推荐
- nginx指定访问路径跳转至指定路径
在Nginx中,指定访问路径跳转至指定路径,配置如下: server {#当访问路径为/abc.jsp时,跳转至https://www.baidu.com/abc.html网址if ($request ...
- 解决:VUE nginx 部署 SSL https访问 WebSocket 问题
报错1. Failed to construct 'WebSocket': An insecure WebSocket connection may not be initiated from a p ...
- 群晖导入SSL证书HTTPS访问
一.申请证书 现在免费的SSL证书服务有很多,由于我的域名是阿里云,所以用的是阿里的免费SSL证书. 阿里云SSL证书申请:https://yundun.console.aliyun.com/ 申请证 ...
- Django配置Https访问
Django配置Https访问 问题描述 相关知识普及 什么是http? 什么是https? http vs https 问题解决 问题分析 解决方案 1 解决方案2 实际操作 验证 重启服务 请求验 ...
- [企业内部https证书配置]tomcat 7配置https的完整历程
很久之前开发的一套Java Web系统,该系统是企业内部使用的系统, 部署在Tomcat上,一开始使用http 访问, 后来因为安全需求, 转换为https 访问. 在几年前https 访问之后一切正 ...
- Nginx强制https访问
为什么80%的码农都做不了架构师?>>> 打开nginx配置文件,添加配置段: # HTTPS server { listen 443; server_name www.xxx ...
- 开启HSTS让浏览器强制跳转HTTPS访问
开启HSTS让浏览器强制跳转HTTPS访问 来源 https://www.cnblogs.com/luckcs/articles/6944535.html 在网站全站HTTPS后,如果用户手动敲入网站 ...
- Nginx 配置一个域名使用HTTPS 后其它域名访问HTTPS时也会跳转到该站点解决
nginx 同一个IP上配置多个HTTPS主机 Nginx 配置一个域名使用HTTPS 后其它域名访问HTTPS时也会跳转到该站点 对于https的域名在同一个IP上如何同时存在多个虚拟主机呢? 遂, ...
- nginx 强制跳转https_Nginx服务器环境手动安装Discuz! Q非详细教程
Discuz! Q Discuz! Q是原腾讯旗下Discuz团队新开源的社区程序,不过定位当然和以前不一样. 前段时间就知道Discuz! Q内测这事,不过一直没兴趣,昨天看见腾讯云这边有个Disc ...
最新文章
- 优秀logo设计解析_必修课 | 抛开固有思维,品牌amp;logo设计不求人!
- 51单片机除c语言 中断嵌套,关于51系列单片机中断嵌套 - 关于单片机中断嵌套总结...
- 蓝宝石显卡bios_这操作竟能让显卡性能暴涨?原来不是黑科技,小白都会
- C#中using关键字的作用及其用法(转)
- ​50 年来最具影响力的十大编程语言!
- python语言哪个人创造_Python语言是由哪个人创造的?
- MySQL 之 单行函数(数学函数、字符串函数、日期时间函数、流程函数 )
- 原版98启动盘镜像.img_不会重装系统?教你使用U盘重装win10原版系统,零基础也能学会!...
- JVM垃圾回收策略与垃圾收集器
- oracle 10g rac安装
- Nexus下载失败解决方案
- oracle客户端添加sqlldr
- 清空IE缓存-也就是清除掉IE临时文件夹
- Ubutu 12.04LTS 安装搜狗拼音输入法+搜狗皮肤 步骤详解
- css实现3D书本翻页动画
- bootstrap table
- Affinity propagation 近邻传播算法
- Matlab GUI编程技巧(十二):menu创建菜单或菜单项
- Finished with error:Navicat 运行SQL文件 报错
- 7.3 习而学与CDIO,来自工程教育思想的启示——《逆袭大学》连载