站点默认访问https

需求简介

现在网站都是https访问了,再用http会显得很low,所以我要把网站设置为默认的https访问。

1nginx的rewrite方法

这应该是大家最容易想到的方法,将所有的http请求通过rewrite重写到https上即可

server {

listen 192.168.1.111:80;

server_name  chaogg.com; 

rewrite ^(.*)$ https://$host$1 permanent;

}

2nginx的497状态码

error code 497

497 - normal request was sent to HTTPS

当此虚拟站点只允许https访问时,当用http访问时nginx会报出497错误码

利用error_page命令将497状态码的链接重定向到https://localhost这个域名上

server {

  listen 192.168.1.11:443;    #ssl端口

  listen 192.168.1.11:80;    #用户习惯用http访问,加上80,后面通过497状态码让它自动跳到443端口

   server_name chaogg.com;

   #为一个server{......}开启ssl支持

   ssl on;

   #指定PEM格式的证书文件

   ssl_certificate /etc/nginx/chaogg.pem;

   #指定PEM格式的私钥文件

   ssl_certificate_key /etc/nginx/chaogg.key; 

   #让http请求重定向到https请求

    error_page 497    https://$host$uri?$args;
 }

3index.html刷新网页

上述两种方法均会耗费服务器的资源,我们用curl访问baidu.com试一下,看百度的公司是如何实现baidu.com向www.baidu.com的跳转

可以看到百度很巧妙的利用meta的刷新作用,将baidu.com跳转到www.baidu.com.因此我们可以基于http://chaogg.com的虚拟主机路径下也写一个index.html,内容就是http向https的跳转

index.html

<html>

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

</html>

nginx虚拟主机配置

server {

listen 192.168.1.11:80;

server_name    chaogg.com; 

location / {

#index.html放在虚拟主机监听的根目录下

root /srv/www/http.chaogg.com/;

}

#将404的页面重定向到https的首页

error_page    404    https://chaogg.com/;

}
 

上述三种方法均可以实现基于nginx强制将http请求跳转到https请求,请放心使用。

原文地址:https://www.cnblogs.com/peteremperor/p/9417472.html

时间: 2024-08-27 21:24:56

站点默认访问https的相关文章

IIS7配置HTTPS+默认访问https路径

转自:https://www.cnblogs.com/vanblog/p/9628581.html 一.下载证书(这里我使用的是阿里云免费的证书) 文件说明: 1. 1532858285913.key(证书私钥文件).1532858285913.pem(证书文件).1532858285913.pfx(PFX格式证书文件).pfx-password.txt(PFX格式证书密码文件) 二.安装证书(以windows server 2008 r2  IIS7为例) 1.证书导入 开始 -〉运行 -〉M

Web站点错误提示页面和默认访问页面设置

1.asp.net 定制简单的错误处理页面 通常web应用程序在发布后,为了给用户一个友好界面和使用体验,都会在错误发生时跳转至一个自定义的错误页面,而不是asp.net向用户暴露出来的详细的异常列表. 简单的错误处理页面可以通过web.config来设置 <configuration> <system.web> <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.h

php网站修改默认访问文件的nginx配置

搭建好lnmp后,有时候并不需要直接访问index.php,配置其他的默认访问文件比如index.html这时候需要配置一下nginx才能访问到你想要设置的文件 直接上代码,如下是我的配置的一份简单的nginx到php-fpm的站点,该站点默认访问目录/ecmoban/www/index.html server { listen 80; location / { root /ecmoban/www; index index.html index.php index.htm; } error_pa

配置 squid 使其支持 访问https站点

需求:让用户通过squid访问https网站 注意和配置squid使其支持https不同 网上的资料基本都是给squid配置一个证书,但直觉告诉我这并不能解决我们的问题 进入正题,通过之前配置好的squid访问http站点可以正常访问, 但无法访问https开头的网站 查找问题最好的方法就是分析日志 access.log中发现如下信息 NONE/400 4280CONNECT error:method-not-allowed - NONE/- text/html 查看 squid.conf ,默

HTTPS的证书未经权威机构认证的情况下,访问HTTPS站点的两种方法

注意一下文章中提到的jsse在jdk1.4以后已经集成了,不必纠结. 摘 要 JSSE是一个SSL和TLS的纯Java实现,通过JSSE可以很容易地编程实现对HTTPS站点的访问.但是,如果该站点的证书未经权威机构的验证,JSSE将拒绝信任该证书从而不能访问HTTPS站点.本文在简要介绍JSSE的基础上提出了两种解决该问题的方法. 引言 过去的十几年,网络上已经积累了大量的Web应用.如今,无论是整合原有的Web应用系统,还是进行新的Web开发,都要求通过编程来访问某些Web页面.传统的方法是使

IIS中配置访问HTTPS

1,新建网站,选中类型为 https,然后更改SSL证书为你配置的SSL证书, 对于SSL证书的配置是这样的 点开第二步,然后点击 创建自签名证书 确定以后点开网站看到有个SSL, 双击进去,再选中 要求SSL 选中此步就是为了防止浏览器认为你的网站不安全阻止网站的访问,到此,证书配置完成 然后发现IIS无法绑定域名,因为IIS7默认不支持HTTPS绑定域名,此时需要自己手动去设置 首先打开 C:\Windows\system32\inetsrv\config\applicationHost.c

如何监听第三方应用程序(SOAP or RESTful 客户端)访问HTTPS网站时的数据?

随着互联网的应用越来越多,在我们的日常开发和调试当中(比如调试SOAP和RESTFul的时候),我们常常需要访问用第三方的工具访问HTTPS的网站,为了简化描述,本文使用IE浏览器访问Google 提供的https://www.googleapis.com/discovery/v1/apis RESTful服务为例,注意这个是基于https协议的访问,如果用第三方的嗅探工具,比如wiresharp,即使我们能把http的数据包抓到,显示出来的内容也是乱码,因为传送的内容经过了加密,而加密的私钥就

iOS实用技巧 - AFNetworking2安全的使用自签证书访问HTTPS

友情提示:本文使用的AFNetworking是最新git pull的2.3.1版本,如果想确认你机器上的AFNetworking版本,请打git tag命令查看. 绝大部分iOS程序的后台服务都是基于RESTful或者WebService的,不论在任何时候,你都应该将服务置于HTTPS上,因为它可以避免中间人攻击的问题,还自带了基于非对称密钥的加密通道!现实是这些年涌现了大量速成的移动端开发人员,这些人往往基础很差,完全不了解加解密为何物,使用HTTPS后,可以省去教育他们各种加解密技术,生活轻

使用curl,libcurl访问Https

编译curl,libcurl 下载curl源码(git clone https://github.com/curl/curl),在目录curl\winbuild\BUILD.WINDOWS.txt文件中,详细介绍了使用nmake编译windows下curl及libcurl库的相关命令,摘录如下: nmake /f Makefile.vc mode=<static or dll> <options> where <options> is one or many of: V