如何把https开头的网址转换成http

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-01
怎样把网站从http转换成https

网站从http升级到https,需要到CA机构申请SSL证书,将SSL证书部署到服务器端,就可以实现https网站。
拓展回答:
Https和Http的区别:
https协议需要到ca申请证书,一般免费证书很少,需要交费。http是超文本传输协议,信息是明文传输。
https 则是具有安全性的ssl加密传输协议。http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

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配置即可:







<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
-->



























--><!--


-->



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:










用户名:

密码:

记住用户名:










后台登陆界面 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");
}
}
}
}

如果网站没有强制HTTPS,并且同时开启了80和443端口,你可以手动把S去掉来访问。如果网站设置了强制HTTPS,那就只能通过HTTPS访问了。HTTPS比HTTP更加安全,能保护用户隐私,建议使用HTTPS来访问更好。

  • 七个方法让你顺利登入Gmail邮箱
    答:1、如果你在输入完账号和密码,点击登录后没有反应,或者卡在那里,可以按住键盘上的【ctrL+F5】组合键刷新页面。2、如果你登录www.的网址登录不上,你可以把前面换成https来登录,如图。3、使用谷歌的html标准登录,就是在网址后面再加上h,具体的地址如图。4、如果还登不上,可以试试Gmail移动版能...
  • 怎样用电脑打开https://m.tb.cn/……手机淘宝地址?
    答:这一个的话,你可以打开一个QQ浏览器然后按键盘的f12进入到浏览器的调节模式,就可以打开手机网址了。
  • https:w//urt//en//s//At29ⅰeh中文是什么意思?
    答:这个是一个网址,它的中文并没有什么样的含义啊,你可以直接的打开这个网址去进行搜索,看一看网址里面有什么的内容
  • 搜狗拼音输入法
    答:《搜狗拼音输入法 v10.5》百度网盘资源免费下载:链接: https://pan.baidu.com/s/1GUA5sy51_AbozZnRW0Wi0Q ?pwd=y5pd 提取码: y5pd 搜狗拼音输入法v10.5最新版荣获多个国内软件大奖的拼音输入法,是一款打字更准、词库更大、速度更快、外观漂亮、用了让您爱不释手的输入法,是您装机输入的...
  • 网址hppt和hpps有什么区别
    答:https和http区别 ●https更安全 HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。●https需要申请证书 https协议需要到ca申请证书,一般免费证书很少,需要交费,费用大概与.COM域名差不多,每年需要交大约几十元的费用。而常见的http协议则没有这一项;●端口不同 ...
  • ...这个网址链接,复制到浏览器去直接打https://app.h
    答:管理员正在维护网站链接分为内链和外链。内链是指本站内部的链接,外链是指外部网站指向本站的链接。通俗的说,外链就是在你的网站(任何页面)建立一个或几个链接,点击后就可到达我的网站,同样在我的网站建立这样的链接,点击后就可以到你的网站。这样就可以让访客在两个网站之间流动。通常,要建立...
  • asradm命令如何使用HTTPS代理进行主机注册?
    答:它的基本语法格式为 asradm [参数],其中参数选项灵活,可帮助管理员进行不同的操作。例如,-h 参数用于设置连接Internet的HTTPS代理主机,这对于处理网络请求时的代理设置至关重要。通过输入 asradm set-proxy -h www.aiofo.com,管理员可以快速设置代理主机。另外,非交互式操作也十分便捷,如使用 -u...
  • HTTPS执行流程解析
    答:超文本传输安全协议 (英语: H yper T ext T ransfer P rotocol S ecure,缩写: HTTPS ;常称为HTTP over TLS、HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐...
  • 求大神把图片中的网址直接给翻译出来,我要复制粘贴打开谢谢
    答:https://oad2jvavh.qnssl.com/hs1221h.plist 要下再吧 下面是翻译:项目 资产 友善的 软件包 URL https://dl0tgz6ee3upo.cloudfront.net/production/app/builds/014/232/044/original/626a5c20c5ff798381a9c73ab298a089/hs-1221.ipa 友善的 显示图像 需要阳光 URLhttp://7xweyh.com1.z0....
  • 把链接复制粘贴到浏览器打开下载
    答:怎么把网址复制到浏览器打开1、我们首先长按一下想要复制的链接,点击一下【复制】然后打开手机浏览器,以百度浏览器为例。随后点击一下上方的搜索框。之后点击输入法键盘,如图所示的位置。2、首先在手机中打开微信,找到好友对话。然后在聊天页面,长按网址点击复制。复制完成后,打开手机浏览器,点击搜索...