证书制作 z
一、WCF中的安全方式
说到安全就会涉及到认证,消息一致性和机密性,WCF的安全方式分为两种,即传输安全和消息安全。
传输安全和消息安全的区别:
传输安全提供点对点的安全: 比如 A 提供服务,B和C直接连接到A,这时候A与B 及 A与C直接的传输是安全的,如果B通过C连接到A,那么A与B直接是安全的,B与C之间是不安全的。
消息安全:是把安全机制都应用在消息级别上面的,能够提供端对端的安全,不管消息的路由路径多么复杂,也能保证消息的安全传输。
传输安全我们一般应用在局域网中,消息安全主要应用在复杂的互联网环境中,传输安全有着消息安全不可比拟的优势就是高性能。
二、如何制作证书
既然是传输安全就必然会用到SSL,Https,就会涉及到数字证书,数字证书的概念和原理我们就不介绍了,百度一下就Ok,我们只要知道它是为我们的服务器端和客户端提供身份认证和能为我们的消息提供加密的东东就可以了。首先我们来演示一下制作证书的过程:
Windows server 系统都有证书服务的,我们可以通过添加证书服务来制作证书,具体操作可以参照这篇文章。
我们后面的DEMO环境都是在Win7 +vs2010环境下面进行的,因此我们只能通过MakeCert命令方式创建证书,并通过netsh程序给端口注册证书。
1、MakeCert 命令 可以通过 Visual Studio 命令提示输入“ MakeCert”运行,命令主要参数介绍:(参数有很多,不一一列出,只列出我们使用的)
-n :证书的主题名称;例如 -n "CN=计算机名称"
-pe:将生成的私钥标记可导出;
-sr:数字证书的位置(CurrentUser代表当前帐户;LocalMachine代表本机)
-ss:证书的存储区;-sky: 指定密钥的类型(signature:签名密钥;exchange:交换密钥)
-r :创建自签证书
注意:-n "CN=计算机名称" 默认为计算机名称,实际项目中可以为网站的名称,比如:wwww.xxx.com,当然你也可以使用其他名称,但是在WCF调用的时候会有信任关系异常提示,Demo中我们会进行介绍
2、netsh.exe 位于 C:\Windows\System32 目录下:
查看SSL证书的绑定: netsh> http show sslcert
将证书与端口进行绑定: netsh>http add sslcert ipport=0.0.0.0:端口号 certhash=证书的指纹 appid={一个有效的GUID}
删除端口绑定的证书: netsh>http delete sslcert ipport=0.0.0.0:端口
三、制作一个证书并绑定到ip地址端口:
1、制作证书:
我们启动Visual Studio 命令提示工具,然后输入:makecert -sr localmachine -ss My -n "CN=Lx-PC" -sky exchange -pe -r,回车,提示成功!
如何查看这个证书呢?这个证书放到哪里了呢?
我们可以通过运行MMC命令打开控制台,选择 “文件” 菜单中的 “添加或删除管理单元” 打开该对话框,在弹出的对话框左面选择 “证书” :
并点击 “添加” 弹出 “证书管理” 对话框,我们选择 “计算机帐户” ,并点击 “下一步” ,选择 “本地计算机” 之后,点击完成。当然还可以在继续添加一个 “我的用户帐户”,如下图:
点击 “确定” 之后,我们可以在 “证书(本地计算机)” --“个人”--“证书” 节点中 ,看到我们创建的 “Lx-PC” 证书;
接下来要做的是将该证书加入到 “受信任的根证书颁发机构” 和 “受信任人” 节点中,至于为什么会这么做。举个简单的例子,身份证就是我们的证书,谁是可信任的颁发机构,当然是当地xxx公安单位了,如果不是权威机构发布的证书,那么该证书肯定是有问题的了。
我们 “右击” 我们创建的证书,选择 “所有任务”--“导出”,打开 “证书导出” 对话框,选择 “下一步” 后,选择 “是,导出密钥”
并点击 “下一步”,默认选择“个人信息交换”,
继续点击 “下一步” ,输入 密码 “123456”,
点击 “下一步” 后,选择 “浏览” ,文件命名为 “lxpc.pfx”,并保存到桌面。
之后,我们分别右击 “受信任的根证书颁发机构” 节点和 “受信任人” 节点,选择 “所有任务” --“导入” 。选择我们刚刚导出到桌面的lxpc.pfx 文件,并输入 密码123456,之后,就分别导入到两个节点中了。
2、利用netsh 命令将制作的证书绑定到端口:
这时候我们需要查看证书的指纹: 双击我们的证书,选择详细信息标签
记录下该证书的指纹为:63c06b2292c76391fe075becb01e4a1f350a5a87
接着,我们通过windows 控制台 cmd,运行 netsh 命令,并输入:
http add sslcert ipport=0.0.0.0:9000
certhash=63c06b2292c76391fe075becb01e4a1f350a5a87
appid={BFC5621F-EF33-1234-AD7E-51EDDAEC5234}
结果显示:
我们可以利用 netsh> http show sslcert 来查看我们的证书是否绑定到了9000端口:
由图可见:我们已经将我们刚刚制作的证书 绑定到了 9000端口。
证书制作 z的更多相关文章
- iOS企业分发证书制作
自签名证书制作流程 打开终端,输入 openssl genrsa - ,生成名称为ca的秘钥 注:openssl生成的文件皆放在用户文档下(finder菜单栏'前往' - 电脑 -Macintosh ...
- iOS调试证书/公布证书制作
当已经注冊过applied 开发人员账号后,而且进行付款了,那么接下来就是证书制作了 1.登录membercenter https://developer.apple.com/membercenter ...
- nginx证书制作以及配置https并设置访问http自动跳转https(反向代理转发jboss)
nginx证书制作以及配置https并设置访问http自动跳转https 默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数,安装模块依赖 ...
- Activex打包于发布完整版---微软证书制作
众所周知,Activex组件没有进行有效的签名,在IE上无法安装的,除非你让用户手工开启“接收任何未签名的ActiveX”,这个很明显不现实.而组件签名需要证书,证书从哪里来,你可以选择付1000到3 ...
- ios证书制作与上架指南
项目开发完了,要上架 ios AppStore 记录一下经过,以及需要提前准备和预防的东西,以便下次省心! 一.首先要申请开发者账号: 账号按流程注册申请,当时申请了够10遍,总结以下经验: 1.申请 ...
- SSL:GoDaddy SSL证书制作和安装
简介 SSL证书是数字证书的一种类似于驾驶证.护照和营业执照的电子副本.因为配置在服务器上,也称为SSL服务器证书.SSL 证书就是遵守SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁 ...
- 国密算法SM2证书制作
国密算法sm2非对称算法椭圆曲线 原文:http://www.jonllen.cn/jonllen/work/162.aspx 前段时间将系统的RSA算法全部升级为SM2国密算法,密码机和UKey硬件 ...
- 重温WCF之WCF传输安全(十三)(1)前期准备之证书制作(转)
转载地址:http://www.cnblogs.com/lxblog/archive/2012/09/12/2682372.html 一.WCF中的安全方式 说到安全就会涉及到认证,消息一致性和机密性 ...
- JAVA数字证书制作生成
1.加密算法 为了网络通讯中的报文安全,一般需要对报文进行加密,目前常用的加密算法有: 非对称加密算法:又称公钥加密算法,如RSA.DSA/DSS,最常用的就是RSA算法(算法公开,可自行百度了解算法 ...
随机推荐
- 转 JSON在PHP中的基本应用
PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码. 一.json_encode() 该函数主要用来将数组和对象,转换为json格式.先看一个数组转换 ...
- proxy写监听方法,实现响应式
var data = { price: 5, quantity: 2 };var data_without_proxy = data; // 保存源对象data = new Proxy(data_wi ...
- springboot使用Freemarker继承
最近需要用到Freemarker的继承.但是发现没有关于springboot配置Freemarker的继承的.所以趁现在有时间写个博客. 1. Freemarker继承介绍 Freemarker 通过 ...
- Spring Boot学习笔记-配置devtools实现热部署
写在前面 Spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用. de ...
- Scrum 冲刺博客第二篇
一.当天站立式会议照片一张 二.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中 昨天已完成的工作 配置和连接微信小程序服务器 个人界面设计 部主页界面设计 答题界面设计 今 ...
- step6: item与pipeline
目的:提取内容进行格式化输出,类似于字典 编写item文件 class JobBoleArticleItem(scrapy.Item): title = scrapy.Field() #支持传进任何数 ...
- C#操作Redis Set 无序集合
/// <summary> /// redis 无序集合 /// </summary> public static void Redis_Set() { RedisClient ...
- C# dynamic json
对应普通对象,写个扩展方法,ToJson蛮方便. 但是 dynamic 类型就不行了,因为是运行时解析,只能转换为强类型 IDictionary<string, object> 才可以. ...
- spring实现固定时间定时器
此文章是基于 搭建Jquery+SpringMVC+Spring+Hibernate+MySQL平台 一. jar包介绍 1. spring-framework-4.3.4.RELEASE 的 lib ...
- 如何去除vue项目中的 # — vue路由的History模式
前言 在创建的 router 对象中,如果不配置 mode,就会使用默认的 hash 模式,该模式下会将路径格式化为 #! 开头. 添加 mode: 'history' 之后将使用 HTML5 his ...