【转】https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题...

news/2024/5/9 17:11:09/文章来源:https://blog.csdn.net/weixin_30507269/article/details/96004079

正需要这个,写的很好,就转过来了

转自: http://www.cnblogs.com/naniannayue/

一:什么是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

image

image

为什么这里还是能看到明文的用户名和密码呢?

原因是因为:https(ssl)的加密是发生在应用层与传输层之间,所以,在传输层看到的数据才是经过加密的,而我们捕捉到的http post的,是应用层的,是还没经过加密的数据。

  1. 加密的数据只有客户端和服务器端才能得到明文
  2. 客户端到服务端的通信是安全的

支付宝也是https的,但是他的同时也增加了安全控件来保护密码, 以前认为这个只是用来防键盘监听的,其实,看下面http post截获的密码:这个安全控件把给request的密码也先加了密,紧接着https再加次密,果然是和钱打交道的,安全级别高多了:)

image

 

四:http网站转换成https网站之后遇到的问题

 

整站https还是个别的页面采用https?网站的连接是使用相对路径?还是绝对路径?

如果是整站都是https,那么会显得网页有些慢,如果是个别页面采用https,那么如何保证从https转换到http的时候的url的准确性呢?

比如我们用http的时候,网站的头部底部都是用的相对路径,假如你的页面是 http://aa/index.aspx  你跳转到 https://aa/login.aspx 这里怎么来跳转?只能把超链接写死

<a href=”https://aa/login.aspx”>登陆</a>  但是这样的话,你跳转过去之后的页面 ,所有的相对路径都变成了https开头了,这样很影响网站的效率。

 

虽然使用绝对地址可以解决,但是那样显然不好移植。

 

下面就是使用第三方的组件,来解决上面的这个问题

http://www.codeproject.com/Articles/7206/Switching-Between-HTTP-and-HTTPS-Automatically-Ver

 

步骤   先下载dll文件 http://code.google.com/p/securityswitch/downloads/list    我选择的是 SecuritySwitch v4.2.0.0 - Binary.zip这个版本

image

1: 我们来看看测试项目

 image

admin 文件夹,需要登录之后,才能访问。admin里面的 login.aspx  可以访问。整个admin文件夹都需要https访问

image

contact.aspx 需要https 访问

image

default.aspx 和 view.aspx 采用 http 访问

image

链接我们都采用相对路径,并没有写死成 http://www.xx.com/a.aspx   或者是 https://www.xx.com/a.aspx

image 

下面我们开始用SecuritySwith来实现上面的https和http访问的规则

2:在项目上,添加引用 SecuritySwitch.dll  ,并且添加 智能提示

image

image

image

这样,只能提示就有了。

image

 

 

 

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:其他就没有你什么事情了,url的 http 后台 https 的切换,都是securitySwitch 来控制

 

 

 

 

 

 

五:asp.net 内置票据认证+securitySwitch 的实现(就是上面说的 admin 需要登录才能访问)看下文

   http://www.cnblogs.com/naniannayue/archive/2012/11/23/2784568.html 

 

六:securitySwitch  4.2 中文帮助文档

   http://www.cnblogs.com/naniannayue/archive/2012/11/23/2784653.html

转载于:https://www.cnblogs.com/loveAnimal/p/3447848.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_747298.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何让你的网站支持 IE9 Pinned Site (Part 2 - 实战)

该如何展示 IE9 Pinned Site 呢&#xff1f;我可以写一个新的应用&#xff0c;完全是为了展示 Pinned Site 的特性&#xff0c;但这样就像是为了实现这些特性而利用这些特性。所以我想还是升级一个现有的网站好了&#xff0c;这样更能说明 Pinned Site 是如何起到优化用户体验的…

Jsoup开发网站客户端第二篇,图片轮播,ScrollView兼容ListView

最近一段日子忙的焦头烂额&#xff0c;代码重构&#xff0c;新项目编码&#xff0c;导致jsoup开发网站客户端也没时间继续下去&#xff0c;只能利用晚上时间去研究了。今天实现美食网首页图片轮播效果&#xff0c;网站效果图跟Android客户端实现如图&#xff1a; 从浏览器开发者…

大型网站技术架构(五)网站高可用架构

2019独角兽企业重金招聘Python工程师标准>>> 网站的可用性&#xff08;Avaliability&#xff09;描述网站可有效访问的特性。 1、网站可用性的度量与考核 网站不可用时间&#xff08;故障时间&#xff09;故障修复时间点-故障发现&#xff08;报告&#xff09;时间点…

大型网站技术架构(八)网站的安全架构

2019独角兽企业重金招聘Python工程师标准>>> 从互联网诞生起&#xff0c;安全威胁就一直伴随着网站的发展&#xff0c;各种Web攻击和信息泄露也从未停止。常见的攻击手段有XSS攻击、SQL注入、CSRF、Session劫持等。 1、XSS攻击 XSS攻击即跨站点脚本攻击&#xff08;…

爬取简单反爬虫网站实战

实战一&#xff0c;爬取京东商品 import requestsurl "https://item.jd.com/27217068296.html"try:r requests.get(url)r.raise_for_status() #获取爬取失败异常r.encoding r.apparent_encodingprint(r.text[:1000]) except:print("爬取失败")结果&a…

深入浅出SharePoint——使用HTTPS来访问网站

如下图所示&#xff1a;由于默认的SSL端口443已经被其他web application占用了&#xff0c;所以我们指定4433为https的端口。这样我们在配置mapping关系的时候就要使用底油端口为4433的网址。 转载于:https://www.cnblogs.com/mingle/archive/2013/05/30/3107731.html

职业社交网站为何比微博更有价值

“微时代”的风生水起&#xff0c;让越来越多的企业一头热地投入到微博营销中去&#xff0c;这当然与微博庞大的用户群息息相关。目前&#xff0c;新浪微博的用户已经突破了2亿。这样看&#xff0c;微博目前似乎是线上领域无敌手&#xff0c;在我看来却未必如此&#xff0c;比如…

做网站用UTF-8编码还是GB2312编码?

经常我们打开外国网站的时候出现乱码&#xff0c;又或者打开很多非英语的外国网站的时候&#xff0c;显示的都是口口口口口的字符&#xff0c; WordPress程序是用的UTF-8&#xff0c;很多cms用的是GB2312。 ● 为什么有这么多编码&#xff1f; ● UTF-8和GB2312有什么区别&…

全面解读中英文网站中字体的异同

英文网站与中文网站的异同不仅仅是使用中文与英文的差别。由于中文字形复杂&#xff0c;并且电脑上的中文字体设计相对落后&#xff0c;这使得设计中文网页要比英文网页更困难。不顾及中文字体的特殊性&#xff0c;简单的照搬英文网页的设计方法&#xff0c;经常会降低中文网页…

网站建设-数据库横向扩展

数据库横向扩展 在网站建设的过程中&#xff0c;一个高扩展性的架构设计可以保证当网站业务量和访问量达到零界点时我们能够以较低的成本对现有系统进行扩展。而网站系统最难扩展的部分通常是数据库或者持久化存储。当今最流行的RDBMS数据库&#xff0c;如Oracle&#xff0c;Sq…

mysql 日志的启动与查看:有利于开发者研究网站一个页面执行时的sql语句变化...

2019独角兽企业重金招聘Python工程师标准>>> 当我们研究一个网站的时候&#xff0c;比如phpwind系统&#xff0c;我需要知道当发表帖子的时候mysql执行了哪些查询和更新和插入呢&#xff1f; 有个方法可以给我我们&#xff0c;那就是开启mysql的日志 查询日志&…

陆续放给大家一些拿钱买的收费的模板,今天先给一个在某销售网站上排行第一的管理端模板 Ace Responsive Admin Template...

下载地址&#xff1a; http://pan.baidu.com/s/1B2xjC 提取密码&#xff1a;le1p 原文地址&#xff1a;http://zhangrou.net/post/2014/06/23/陆续放给大家一些拿钱买的收费的模板&#xff0c;今天先给一个在某销售网站上排行第一的管理端模板-Ace-Responsive-Admin-Template.a…

新的Oracle网站登录界面

今天登录MOS的时候发觉居然用户登录界面更新了,新的界面更为大气&#xff0c;风格上也更Oracle了。可以看出后台仍使用Oracle Access Manager 11g&#xff0c;仅仅是UI发生了变化。

SEO培训对个人站长的价值

互联网个人站长需要被关注&#xff0c;不管他们的未来将如何发展&#xff0c;都离不开各种站长平台的支撑以及新知识的获取方式&#xff0c;谈起SEO培训&#xff0c;另许多个人站长兴奋不已的同时也会存在着各种谩骂。B君2012年进入互联网行业&#xff0c;大学期间闻声互联网一…

49 | 深入浅出网站高性能架构设计

转载于:https://www.cnblogs.com/lmx0621/p/10614980.html

.NET Web开发初学者必知的四个网站

No.1 W3school 链接&#xff1a; http://www.w3school.com.cn/ 预览&#xff1a; 介绍&#xff1a; 全球最大Web前端技术教程网站。内容涵盖从基础的 HTML 到 CSS到进阶的XML、SQL、JS、PHP 和 ASP.NET。 优点&#xff1a; 教程语言简练&#xff0c;通俗易懂。几乎每个知识点都…

【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器

转载自:周旭龙 http://www.cnblogs.com/edisonchou/p/4126742.html 一、反向代理&#xff1a;Web服务器的“经纪人” 1.1 反向代理初印象 反向代理&#xff08;Reverse Proxy&#xff09;方式是指以代理服务器来接受internet上的连接请求&#xff0c;然后将请求转发给内部网络…

让你的HTML5CSS3网站在老IE中也能正常显示的3种方法

起初&#xff0c;IE其实也是一款非常有进取心的浏览器。但经过一段时间的蛰伏后&#xff0c;它已经成为了我们生活中的一道障碍。微软现在又重新开始向其它浏览器发起挑战&#xff0c;但事实情况是&#xff0c;新版的现代IE浏览器一直滞后于谷歌浏览器和火狐浏览器。我们还不得…

PHP案例 网站会员管理设计

原文[下载/浏览]&#xff1a;http://www.xilinjie.com/university/123 内容介绍一、概述 会员管理的网页功能在现今网站构建上相当的重要&#xff0c;尤其是对于一些需要付费来取得会员认证的公司和个人网站。为了避免误闯的用户及有心的***&#xff0c;会员认证及管理的方式的…

基于阿里云ECS的phpwind网站备案前如何远程访问调试?

基于阿里云ECS的phpwind网站部署非常方便&#xff0c;但云主机的外网IP绑定域名却比较复杂。先要申请域名&#xff0c;成功后还需要备案。尤其是企业网站备案&#xff0c;需要提交的资料较多&#xff0c;准备资料以及审批的时间较长。这段时间在外网采用IP访问是不行的&#xf…