服务器在安装SSL证书完成后,要想实现输入域名自动跳转到https,我们还需要通过添加代码才能达到效果。下面直接看教程:
1、按照格式修改nginx.conf配置文件;
2、修改配置文件后,重启nginx。
配置文件请参考:https://panxu.net/article/8380.html
网站从http转换成https怎么弄?
1、确定需要HTTPS的域名,当然这个域名是独立的,可以正常解析。
2、拥有一台独立服务器,通常适应的是云服务器(虚拟主机通常都不支持的)。
3、网站程序源码,这个很重要不是所有源码都支持HTTPS,不过通常主流都是支持的,不支持的也是稍微修改一下就可以了。
4、关键的一步HTTPS是要办理认证的,这一点需要登陆淘宝:Gworg 获取信任的证书,当然需要验证的域名的,不过Gworg会指导完成验证。
5、需要把认证好的证书安装到独立服务器,这一点可以让Gworg提供安装文档,当然看不懂文档没有关系,给钱就可以让Gworg完成安装了。
6、最后一步打开网页,预览就看到地址栏显示HTTPS了。
如何将HTTP站点转换成HTTPS,及后续问题
由于传统的http是明文传输数据,没有经过加密,容易被黑客截取,缺乏安全性,而https是在http的基础上加入了SSL协议,可以使数据进行加密传输,相当于http的升级版,比http协议安全,因此,越来越多的网站选择部署SSL证书实现https加密。
那么网站怎样从http转换成https呢?
1、申请SSL证书
网站要实现https加密,首先要申请SSL证书,申请SSL证书的步骤如下:
CSR文件制作:申请SSL证书之前,需要制作CSR文件,可在沃通官网CSR在线生成工具中生成CSR文件,并妥善保存生成好的CSR和Key文件,然后将CSR提供给SSL证书供应商来申请SSL证书。
CA认证证书申请:将CSR提交给CA,CA机构审核通过后才能颁发证书,对于DVSSL证书只需验证域名管理权限,一般10-30分钟即可颁发,OVSSL证书和EVSSL证书除了要验证域名管理权限外,还要严格审查网站真实身份,以证明申请单位是一个真实存在的合法实体,CA机构需要在人工核实后才能签发证书,一般需要3-5个工作日。
2、安装证书
在收到CA颁发的SSL证书后,可以将证书部署到服务器,可以咨询沃通CA客服,为您提供技术支持。
3、整改网络链接
SSL证书安装成功后,您的服务器就支持https了,这时要把网站上的全部链接修改成https的形式。
4、全站做301转向
网站链接整改以后,要做全站301跳转,这样可以让搜索引擎更快、更好的抓取新的链接来替换旧的链接,同时让新的链接更快地恢复权重与排名。
5、告诉搜索引擎抓取新链接替换旧链接
可以使用百度搜索资源平台等提供的https认证功能进行认证,让百度更好的抓取、展现我们的https页面。
怎样把网站从http转换成https
https及https的本地测试环境搭建。asp.net结合https的代码实现http网站转换成https网站,以及之后遇到的问题等。
一:什么是https
SSL(Security Socket Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安全性,同时SSL安全机制是依靠数字证书来实现的。
SSL基于公用密钥和私人密钥,用户使用公用密钥来加密数据,但解密数据必须使用相应的私人密钥。使用SSL安全机制的通信过程如下:用户与IIS
服务器建立连接后,服务器会把数字证书与公用密钥发送给用户,用户端生成会话密钥,并用公共密钥对会话密钥进行加密,然后传递给服务器,服务器端用私人密
钥进行解密,这样,用户端和服务器端就建立了一条安全通道,只有SSL允许的用户才能与IIS服务器进行通信。
提示:SSL网站不同于一般的Web站点,它使用的是“HTTPS”协议,而不是普通的“HTTP”协议。因此它的URL(统一资源定位器)格式为“https://网站域名”。
二:https的本地测试环境搭建
1:win7/windows server 2008R2中 IIS7/IIS7.5 搭配https本地测试环境
2:windows server 2003中IIS6.0 搭配https本地测试环境
三:asp.net 结合 https的代码实现
https是由IIS,浏览器来实现的传输层加密,不需要特意的编码。。。平时怎么在asp.net里面编写代码,就怎么写。
很可能要问,为什么我的站点使用了https之后,用firebug之类的软件查看值提交的时候,还是会显示明文呢?例如,博客园的登陆界面提交。
http://passport.cnblogs.com/login.aspx
为什么这里还是能看到明文的用户名和密码呢?
原因是因为:https(ssl)的加密是发生在应用层与传输层之间,所以,在传输层看到的数据才是经过加密的,而我们捕捉到的http post的,是应用层的,是还没经过加密的数据。
加密的数据只有客户端和服务器端才能得到明文 客户端到服务端的通信是安全的
支付宝也是https的,但是他的同时也增加了安全控件来保护密码, 以前认为这个只是用来防键盘监听的,其实,看下面http post截获的密码:这个安全控件把给request的密码也先加了密,紧接着https再加次密,果然是和钱打交道的,安全级别高多了:)
四:http网站转换成https网站之后遇到的问题
整站https还是个别的页面采用https?网站的连接是使用相对路径?还是绝对路径?
如果是整站都是https,那么会显得网页有些慢,如果是个别页面采用https,那么如何保证从https转换到http的时候的url的准确性呢?
比如我们用http的时候,网站的头部底部都是用的相对路径,假如你的页面是 http://aa/index.aspx 你跳转到 https://aa/login.aspx 这里怎么来跳转?只能把超链接写死
登陆 但是这样的话,你跳转过去之后的页面 ,所有的相对路径都变成了https开头了,这样很影响网站的效率。
虽然使用绝对地址可以解决,但是那样显然不好移植。
下面就是使用第三方的组件,来解决上面的这个问题
步骤
先下载dll文件 http://code.google.com/p/securityswitch/downloads/list 我选择的是 SecuritySwitch v4.2.0.0 – Binary.zip这个版本
1: 我们来看看测试项目
admin 文件夹,需要登录之后,才能访问。admin里面的 login.aspx 可以访问。整个admin文件夹都需要https访问:
contact.aspx 需要https 访问:
default.aspx 和 view.aspx 采用 http 访问:
链接我们都采用相对路径,并没有写死成 http://www.xx.com/a.aspx 或者是 https://www.xx.com/a.aspx。
下面我们开始用SecuritySwith来实现上面的https和http访问的规则。
2:在项目上,添加引用 SecuritySwitch.dll ,并且添加智能提示。
这样,只能提示就有了。
3:然后我们在web.config里面添加设置 。根据IIS的不同,还分为 IIS6+ IIS7.X(经典模式) 以及 IIS7(集成模式) 的不同的配置,这里我们是按照IIS6+IIS7.X的(经典模式)来配置的。
只看看里面的 SSL配置即可:
<?xml version=”1.0″?>
<configuration>
<!–SSL配置1开始–>
<configSections>
<section name=”securitySwitch” type=”SecuritySwitch.Configuration.Settings, SecuritySwitch” />
</configSections>
<securitySwitch baseInsecureUri=”http://webjoeyssl”
baseSecureUri=”https://webjoeyssl” xmlns=”http://SecuritySwitch-v4.xsd”
mode=”On”>
<!–如果你的http和https仅仅只有一个s的区别,那么这里的base的2个url可以不写,那为什么还要搞这2个url呢?因为比如
你的 baseInsecureUri (基本不安全网址) 是 http://www.qq.com
而你的 baseSecureUri (基本安全网址) 是 https://safe.qq.com
然后这个时候你访问一个需要https的页面,假如是 login.aspx?return=joey
假如你是通过http://www.qq.com/login.aspx?return=joey访问的,那么这个
页面会跳转到http://safe.qq.com/login.aspx?return=joey
–>
<paths>
<add path=”~/contact.aspx”/>
<add path=”~/admin/login.aspx”/>
<add path=”~/admin” />
<!–这里的admin因为不仅是 admin 文件夹,而且还包含类似的 adminNews.aspx adminQQ.aspx 页面”–>
<!–但是如果是 ~/admin/ 就是专门指admin文件夹–>
</paths>
</securitySwitch>
<!–SSL配置1结束—>
<appSettings />
<system.web>
<compilation debug=”true”>
</compilation>
<!– 内置票据认证 start–>
<authentication mode=”Forms”>
<forms name=”mycook” loginUrl=”admin/login.aspx” protection=”All” path=”/” />
</authentication>
<!–SSL配置2 如果是 IIS <= 6.x, IIS 7.x + 经典模式–>
<httpModules>
<add name=”SecuritySwitch” type=”SecuritySwitch.SecuritySwitchModule, SecuritySwitch” />
</httpModules>
<!–SSL配置2结束–>
</system.web>
<!–SSL配置2 如果是IIS7.X + 集成模式–>
<!–<system.webServer>
<validation validateIntegratedModeConfiguration=”false” />
<modules>
–><!– for IIS 7.x + 集成模式 –><!–
<add name=”SecuritySwitch” type=”SecuritySwitch.SecuritySwitchModule, SecuritySwitch” />
</modules>
</system.webServer>–>
<!–如果是IIS7.X+集成模式 SSL配置2 结束—>
</configuration>
4: 由于用到了内置票据认证,所以要在 Global.asax添加以下代码:
protected void Application_AuthenticateRequest(object SENDER, EventArgs e)
{
if (HttpContext.Current.User != null)
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
if (HttpContext.Current.User.Identity is FormsIdentity)
{
FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;
FormsAuthenticationTicket tiecket = id.Ticket;
string userData = tiecket.UserData;
string[] roles = userData.Split(‘,’);
HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id, roles);
}
}
}
}
5: 后台登陆界面 admin/login.aspx:
<%@ Page Language=”C#” AutoEventWireup=”true” CodeBehind=”login.aspx.cs” Inherits=”web.admin.login” %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head runat=”server”>
<title></title>
</head>
<body>
<form id=”form1″ runat=”server”>
用户名:<asp:TextBox ID=”txtUser” runat=”server”></asp:TextBox><br />
密码:<asp:TextBox ID=”txtPass” runat=”server”></asp:TextBox><br />
记住用户名:<asp:CheckBox ID=”chkUsername” runat=”server” Checked=”true”/>
<br />
<asp:Literal ID=”litResult” runat=”server”></asp:Literal>
<br />
<asp:Button ID=”btnSubmit” runat=”server” Text=”提交” onclick=”btnSubmit_Click” />
</form>
</body>
</html>
后台登陆界面 cs admin/login.aspx.cs:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
namespace web.admin
{
public partial class login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
string username = txtUser.Text;
string pass = txtPass.Text;
bool ischeck=chkUsername.Checked;
if (username==”admin” && pass==”admin”)
{
SaveLogin(username, ischeck);
}
}
private void SaveLogin(string username, bool ischeck)
{
HttpCookie cook;
string strReturnURL;
string roles = “admin”;//将用户的usernameid,保存到cookies,身份是 admin 身份
//要引用 using System.Web.Security;
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1, username, DateTime.Now, DateTime.Now.AddMinutes(30), ischeck, roles);
cook = new HttpCookie(“mycook”);//对应webconfig里面的 验证里面的 forms name=”mycook”
cook.Value = FormsAuthentication.Encrypt(ticket);
Response.Cookies.Add(cook);
strReturnURL = Request.Params[“ReturnUrl”];
if (strReturnURL != null)
{
Response.Redirect(strReturnURL);
}
else
{
Response.Redirect(“default.aspx”);
}
}
}
}
示例Apache+wordpress,方法很简单。
首先在网站根目录下创建.htaccess文件,如果目录下已经有.htaccess文件,则用编辑器打开,在最下面添加写入如下语句即可
全站https跳转,访问http页面会跳转到对应https实现全站301
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
以上就是关于如何让http自动跳转https全部的内容,包括:如何让http自动跳转https、网站http 怎么换成https、网站从http转换成https怎么弄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!