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

  1. <html>

  2. <meta http-equiv="refresh" content="0;url=https://test.com/">

  3. </html>

配置好后,把nginx服务重启,用浏览器输入test.com,即可跳转到https上。

以上原文:http://www.cnblogs.com/yun007/p/3739182.html

转载于:https://blog.51cto.com/cuixiang/1653563

nginx 强制使用https访问(http跳转到https)相关推荐

  1. nginx指定访问路径跳转至指定路径

    在Nginx中,指定访问路径跳转至指定路径,配置如下: server {#当访问路径为/abc.jsp时,跳转至https://www.baidu.com/abc.html网址if ($request ...

  2. 解决:VUE nginx 部署 SSL https访问 WebSocket 问题

    报错1. Failed to construct 'WebSocket': An insecure WebSocket connection may not be initiated from a p ...

  3. 群晖导入SSL证书HTTPS访问

    一.申请证书 现在免费的SSL证书服务有很多,由于我的域名是阿里云,所以用的是阿里的免费SSL证书. 阿里云SSL证书申请:https://yundun.console.aliyun.com/ 申请证 ...

  4. Django配置Https访问

    Django配置Https访问 问题描述 相关知识普及 什么是http? 什么是https? http vs https 问题解决 问题分析 解决方案 1 解决方案2 实际操作 验证 重启服务 请求验 ...

  5. [企业内部https证书配置]tomcat 7配置https的完整历程

    很久之前开发的一套Java Web系统,该系统是企业内部使用的系统, 部署在Tomcat上,一开始使用http 访问, 后来因为安全需求, 转换为https 访问. 在几年前https 访问之后一切正 ...

  6. Nginx强制https访问

    为什么80%的码农都做不了架构师?>>>    打开nginx配置文件,添加配置段: # HTTPS server { listen 443; server_name www.xxx ...

  7. 开启HSTS让浏览器强制跳转HTTPS访问

    开启HSTS让浏览器强制跳转HTTPS访问 来源 https://www.cnblogs.com/luckcs/articles/6944535.html 在网站全站HTTPS后,如果用户手动敲入网站 ...

  8. Nginx 配置一个域名使用HTTPS 后其它域名访问HTTPS时也会跳转到该站点解决

    nginx 同一个IP上配置多个HTTPS主机 Nginx 配置一个域名使用HTTPS 后其它域名访问HTTPS时也会跳转到该站点 对于https的域名在同一个IP上如何同时存在多个虚拟主机呢? 遂, ...

  9. nginx 强制跳转https_Nginx服务器环境手动安装Discuz! Q非详细教程

    Discuz! Q Discuz! Q是原腾讯旗下Discuz团队新开源的社区程序,不过定位当然和以前不一样. 前段时间就知道Discuz! Q内测这事,不过一直没兴趣,昨天看见腾讯云这边有个Disc ...

最新文章

  1. 优秀logo设计解析_必修课 | 抛开固有思维,品牌amp;logo设计不求人!
  2. 51单片机除c语言 中断嵌套,关于51系列单片机中断嵌套 - 关于单片机中断嵌套总结...
  3. 蓝宝石显卡bios_这操作竟能让显卡性能暴涨?原来不是黑科技,小白都会
  4. C#中using关键字的作用及其用法(转)
  5. ​50 年来最具影响力的十大编程语言!
  6. python语言哪个人创造_Python语言是由哪个人创造的?
  7. MySQL 之 单行函数(数学函数、字符串函数、日期时间函数、流程函数 )
  8. 原版98启动盘镜像.img_不会重装系统?教你使用U盘重装win10原版系统,零基础也能学会!...
  9. JVM垃圾回收策略与垃圾收集器
  10. oracle 10g rac安装
  11. Nexus下载失败解决方案
  12. oracle客户端添加sqlldr
  13. 清空IE缓存-也就是清除掉IE临时文件夹
  14. Ubutu 12.04LTS 安装搜狗拼音输入法+搜狗皮肤 步骤详解
  15. css实现3D书本翻页动画
  16. bootstrap table
  17. Affinity propagation 近邻传播算法
  18. Matlab GUI编程技巧(十二):menu创建菜单或菜单项
  19. Finished with error:Navicat 运行SQL文件 报错
  20. 7.3 习而学与CDIO,来自工程教育思想的启示——《逆袭大学》连载

热门文章

  1. 当用户越来越“挑剔”,智能音箱如何押注未来?
  2. 江苏徐州市“十三五”能源发展规划发布
  3. Go语言格式化金额为3个一组隔开
  4. Logstash日志收集实践
  5. 计算机考证照片要什么底
  6. 大数据有哪些重要的作用
  7. 舆情监控系统哪家做的更好?
  8. 读研攻略(1)一次性解决文献搜索、管理、阅读的问题
  9. 读书印记 - 《中国历代政治得失》
  10. CentOS 7 查看关闭防火墙