在这次的项目中遇见了这个问题,之前我并懂了不了多少,只对了SSL和HTTPS理论了解。但并不知道在实际中如何运行。经过自己在网上查阅一番,最后靠自己解决了这个问题,现在在这里和大家分享一下。如果写的有不对或者是不恰当的,就请大家指正,多交流。

SSL(安全套接子层:Secure Socket Layer):

SSL是Secure Socket Layer(安全套接子层):是由网景公司(Netscape)自主研发的用以保障在Internet上敏感数据传输之安全,利用数据加密技术,可确保数据在网络上之传输过程中不会被截取及窃听。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。SSL协议提供的服务主要有:1:认证用户和服务器,确保数据发送到正确的客户机和服务器;2:加密数据以防止数据中途被窃取;3:维护数据的完整性,确保数据在传输过程中不被改变。

HTTPS(安全超文本传输协议:Secure Hypertext Transfer Protocol):

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议就是应用了网景公司的安全套接字层(SSL)作为HTTP应用层的子层。(HTTPS默认端口为443)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁.HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,https的安全基础是SSL,因此加密的详细内容请看SSL。HTTPS是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

在IIS上的HTTPS配置:

1:打开控制面板-》管理工具-》IIS;

2:选中IIS上的顶级节点应用,在右边的功能试图里选择服务器证书,双击进入,可以看见配置在本机的证书,我们为了试验,需要在右边的点击创建自签名证书,按照操作进行完成自签名证书。在实际应用中这个证书是需要在第三方申请的。以下是我的自定义证书:

3:选择需要启动SSL的网站,并点击网站,在最右边的工具选择绑定,就可以添加HTTPS端口和服务证书,如下图:

4:在我们需要启动SSL的网站是点击中间的SSL设置按钮,选择启动SSL,以及确定客户端是否必须持有证书。如入:

这是在IIS中就配置完成了,我们就可以利用HTTPS或者HTTP两种方式去访问我们所启动SSL的网页了,他们的不同在于不同的端口,和安全性。

在IIS中以HTTPS访问页面页面会出现阻止界面:因为我们自定义的证书在Ie中认为是可疑证书如下图,就表明配置成功了。

点击继续浏览此网站(不推荐)。就可以访问页面了。

接下来我们主要是在程序中访问页面,和HTTP没有什么区别,很简单,你只需要将其当做HTTP一样处理就是了。唯一需要注意的是他们的端口不同,所以在Response.Redirect(“url”)的时候我们必须转化为对应的决定URL,而不是相对了。这里就需要用Request.Host和Port来拼接了。就这么多了,我也挤不出来了把我的拼接类贴出来共享下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections.Specialized;
using System.Diagnostics;
namespace MassCarCare.Web.Utils
{
public class URLHelper
{
public HttpContext HttpContext
{
get;
set;
}
public string GetAbsoluteURL(string page, string pre, NameValueCollection paramCollection)
{
if (HttpContext == null)
throw new ArgumentNullException("HttpContext");
string port = ""; ;
if (System.Configuration.ConfigurationManager.AppSettings[pre.ToUpper() + "Port"] != null)
{
port = System.Configuration.ConfigurationManager.AppSettings[pre.ToUpper() + "Port"].ToString();
}
if (string.IsNullOrEmpty(port))
{
if (pre.ToLower().Equals("http"))
{
port = "80";
}
else if (pre.ToLower().Equals("https"))
{
port = "443";
}
else
port = HttpContext.Request.Url.Port + ""; ;
}
string pageUrl = pre + "://" + HttpContext.Request.Url.Host + ":" + port + "/" + page;
string param = "";
if (paramCollection != null)
{
foreach (var item in paramCollection.Keys)
{
param += "&" + item + "=" + paramCollection[item.ToString()];
}
}
if (!string.IsNullOrEmpty(param))
{
param = param.TrimStart('&');
pageUrl += "?" + param;
}
Debug.Write(pageUrl);
return pageUrl;// HttpUtility.UrlEncode(pageUrl);
}
public string GetAbsoluteURL(string page, NameValueCollection paramCollection)
{
return GetAbsoluteURL(page, "http", paramCollection);
}
public string GetAbsoluteURL(string page, string pre)
{
return GetAbsoluteURL(page, pre, null);
}
public string GetAbsoluteURL(string page)
{
return GetAbsoluteURL(page, "http", null);
}
}
}

本文转自 破狼 51CTO博客,原文链接:http://blog.51cto.com/whitewolfblog/834673,如需转载请自行联系原作者

在IIS上SSL的部署和启动SSL安全相关推荐

  1. 阿里云 SSL证书部署(DigiCert 免费版 SSL)

    转载请注明: 藏羚骸的博客~阿里云 SSL证书部署(DigiCert 免费版 SSL). 阿里云DigiCert 免费版 SSL 有效期一年,过期后需要重新部署SSL所以,不管是第一次部署SSL还是刚 ...

  2. 在IIS上部署ASP.NET Core Web API

    目录 Visual Studio 2019和Dot Net Core 3.0 Windows Server上的Dot Net Core运行时 在服务器上启用IIS IIS应用程序池 IIS网站 创建A ...

  3. 运行Vue在ASP.NET Core应用程序并部署在IIS上

    前言 从.NET Core 1.0开始我们就将其应用到项目中,但是呢我对ASP.NET Core一些原理也还未开始研究,仅限于会用,不过园子中已有大量文章存在,借着有点空余时间,我们来讲讲如何利用AS ...

  4. .NET开发框架(五)-IIS上部署ASP.NET Core项目教程

    在之前教程中,我们分享了框架的功能与视频演示介绍(文尾底部提供往期教程快捷链接) 系列教程:从初学者到架构师的一步步蜕变 本篇经验将和大家介绍如何在IIS上部署ASP.NET Core项目,希望对初学 ...

  5. 在IIS上部署你的ASP.NET Core项目

    概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kest ...

  6. WCF 部署在IIS上

    一. 环境vs2010,WCF应用程序,server 2008 第一步:WCF项目右键点击项目,选择生成部署包,如下图: 第二步:WCF项目上右键,选择:在windows资源管理器中打开文件夹,如下图 ...

  7. Abp框架从零开始(基于.Net Core 2.2) 小记(五) 将服务器部署在IIS上

    这一篇,我们尝试将我们的Abp项目部署到IIS上. 首先回顾下Abp框架从零开始(基于.Net Core 2.2) 小记(一) 为Swagger接口页添加详细注释这篇文章,为我们的接口添加上详细的注释 ...

  8. IIS部署阿里云SSL证书

    一.首先登陆阿里云账号,我这里使用得是免费阿里云证书.可申请10个 购买后在ssl证书管理控制台可看到自己购买的ssl 二.申请证书 点击ssl对应的申请按钮填写相应内容,我这里选择的是文件验证 三. ...

  9. 用户 'IIS APPPOOL\**' 登录失败的解决方案(项目部署到本地IIS上打开网页出现报错)...

    为开发方便-将项目部署到本地IIS上打开网页出现报错 1.打开IIS管理 2.点击应用池 3.找到你部署的网站名,右键"高级设置"-->"进程模型"--& ...

  10. 在IIS上部署基于django WEB框架的python网站应用

    django是一款基于python语言的WEB开源框架,本文给出了如何将基于django写的python网站部署到window的IIS上. 笔者的运行环境: Window xp sp3 IIS 5.1 ...

最新文章

  1. 资源 | Hinton、LeCun、吴恩达......不容错过的15大机器学习课程都在这儿了
  2. 2021年春季学期-信号与系统-第八次作业参考答案-第八小题
  3. 冲刺周期二--站立会议01
  4. python类常用装饰器
  5. loadrunner脚本设计:参数化
  6. Linux RedHat下安装eclipse-standard-kepler-SR1-linux-gtk.tar.gz
  7. CodeForces - 613D Kingdom and its Cities(虚树+贪心)
  8. Facebook开源计算机视觉目标检测平台Detectron
  9. python封装工具类多个项目使用_【arcpy项目实战】将多个点两两生成的最短路径pyhon代码封装入script中...
  10. 错误:在keystone中无法找到默认角色user_第四章 keystone认证组件安装1
  11. 【转】Windows Server 2012 R2 双网卡绑定
  12. [NOIP2017 普及组] 成绩
  13. poi修改excel单元格值导致单元格变成橙色的问题(WPS)
  14. 安卓性能优化之启动优化
  15. Python关于人脸图片转换128/512维度向量的两种做法
  16. Seeding(深度优先遍历)
  17. mocha java_Mocha
  18. stm32下的HX711称重模块的程序
  19. Unreal Engine UE4开发技巧
  20. linux usb声卡 无声音,记一次解决在Ubuntu 18.04下声卡没有声音的经历

热门文章

  1. C 语言中的指针和内存泄漏
  2. SQL tp3.2 批量更新 saveAll
  3. ConcurrentDictionary 与 Dictionary
  4. 【bzoj4419】[Shoi2013]发微博 STL-set
  5. oracle导出大数据
  6. 如何在sublime编辑器中,执行命令行脚本
  7. 常用的delphi 第三方控件
  8. 数据库,规则库和知识库的比较
  9. SQL2000升级到2005过程中的用户和登录名问题
  10. linux 操作系统级别监控 free命令