在IIS上SSL的部署和启动SSL安全
在这次的项目中遇见了这个问题,之前我并懂了不了多少,只对了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安全相关推荐
- 阿里云 SSL证书部署(DigiCert 免费版 SSL)
转载请注明: 藏羚骸的博客~阿里云 SSL证书部署(DigiCert 免费版 SSL). 阿里云DigiCert 免费版 SSL 有效期一年,过期后需要重新部署SSL所以,不管是第一次部署SSL还是刚 ...
- 在IIS上部署ASP.NET Core Web API
目录 Visual Studio 2019和Dot Net Core 3.0 Windows Server上的Dot Net Core运行时 在服务器上启用IIS IIS应用程序池 IIS网站 创建A ...
- 运行Vue在ASP.NET Core应用程序并部署在IIS上
前言 从.NET Core 1.0开始我们就将其应用到项目中,但是呢我对ASP.NET Core一些原理也还未开始研究,仅限于会用,不过园子中已有大量文章存在,借着有点空余时间,我们来讲讲如何利用AS ...
- .NET开发框架(五)-IIS上部署ASP.NET Core项目教程
在之前教程中,我们分享了框架的功能与视频演示介绍(文尾底部提供往期教程快捷链接) 系列教程:从初学者到架构师的一步步蜕变 本篇经验将和大家介绍如何在IIS上部署ASP.NET Core项目,希望对初学 ...
- 在IIS上部署你的ASP.NET Core项目
概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kest ...
- WCF 部署在IIS上
一. 环境vs2010,WCF应用程序,server 2008 第一步:WCF项目右键点击项目,选择生成部署包,如下图: 第二步:WCF项目上右键,选择:在windows资源管理器中打开文件夹,如下图 ...
- Abp框架从零开始(基于.Net Core 2.2) 小记(五) 将服务器部署在IIS上
这一篇,我们尝试将我们的Abp项目部署到IIS上. 首先回顾下Abp框架从零开始(基于.Net Core 2.2) 小记(一) 为Swagger接口页添加详细注释这篇文章,为我们的接口添加上详细的注释 ...
- IIS部署阿里云SSL证书
一.首先登陆阿里云账号,我这里使用得是免费阿里云证书.可申请10个 购买后在ssl证书管理控制台可看到自己购买的ssl 二.申请证书 点击ssl对应的申请按钮填写相应内容,我这里选择的是文件验证 三. ...
- 用户 'IIS APPPOOL\**' 登录失败的解决方案(项目部署到本地IIS上打开网页出现报错)...
为开发方便-将项目部署到本地IIS上打开网页出现报错 1.打开IIS管理 2.点击应用池 3.找到你部署的网站名,右键"高级设置"-->"进程模型"--& ...
- 在IIS上部署基于django WEB框架的python网站应用
django是一款基于python语言的WEB开源框架,本文给出了如何将基于django写的python网站部署到window的IIS上. 笔者的运行环境: Window xp sp3 IIS 5.1 ...
最新文章
- 资源 | Hinton、LeCun、吴恩达......不容错过的15大机器学习课程都在这儿了
- 2021年春季学期-信号与系统-第八次作业参考答案-第八小题
- 冲刺周期二--站立会议01
- python类常用装饰器
- loadrunner脚本设计:参数化
- Linux RedHat下安装eclipse-standard-kepler-SR1-linux-gtk.tar.gz
- CodeForces - 613D Kingdom and its Cities(虚树+贪心)
- Facebook开源计算机视觉目标检测平台Detectron
- python封装工具类多个项目使用_【arcpy项目实战】将多个点两两生成的最短路径pyhon代码封装入script中...
- 错误:在keystone中无法找到默认角色user_第四章 keystone认证组件安装1
- 【转】Windows Server 2012 R2 双网卡绑定
- [NOIP2017 普及组] 成绩
- poi修改excel单元格值导致单元格变成橙色的问题(WPS)
- 安卓性能优化之启动优化
- Python关于人脸图片转换128/512维度向量的两种做法
- Seeding(深度优先遍历)
- mocha java_Mocha
- stm32下的HX711称重模块的程序
- Unreal Engine UE4开发技巧
- linux usb声卡 无声音,记一次解决在Ubuntu 18.04下声卡没有声音的经历