ASP.NET Web API编程——使用自签名SSL证书
1自签名SSL证书的创建
创建自签名SSL工具xca为:https://sourceforge.net/projects/xca/
创建过程
1)创建根证书
打开软件,界面如下。
点击,看到下拉菜单,选择,创建新的数据库。
给文件命名,选择文件存储的位置,这里我放在了E:\CA这个文件夹下
点击保存,弹出下页,填写密码
点击ok,弹出下页
点击,弹出下页
签名算法改为SHA 256,其他不变,点击,然后点击ok,弹出下页
点击,填写信息,如下:
点击,弹出下页
确认无误,点击,成功显示下页
点击ok,显示下页
点击ok,创建成功显示下页
点击ok,至此成功生成了根证书。
2)创建服务端证书
在上述根证书创建成功的基础上,选中已生成的根证书。
点击,弹出下页
修改加密算法为SHA 256,证书模板有三个,选择
点击,点击ok,弹出下页
其他操作与生成根证书类似,生成好了以后,页面如下:
3)创建客户端证书
与创建服务端证书基本一致,不同的是选择
2 导出证书
选中证书,点击
选择文件夹和导出格式,导出格式有多种,根据需求导出。
3 IIS中安装证书
注意同一个证书不要安装多次,若要重装,那么先删除已安装的证书。
打开IIS,点击根目录,双击
右键,弹出菜单,点击完成证书申请,即红框部分
弹出页,选择生成好的证书(证书需要以格式导出)
命名并点击确定
至此,不同的IIS会有不同的反应,有些服务器导入成功,有些服务器报错:
有的导入似乎成功,但刷新页面,导入的证书消失。对于这种情况,导入证书后别刷新,右键查看证书,截图如下:
针对上述两种错误的解决办法是:
1 )报错的解决方案是
先将证书安装到计算机受信区,然后打开证书管理器,即开始处运行:certmgr.msc
选中证书,右键操作如图所示。
选择
依提示操作,到输入密码时,这里指的就是创建证书的密码
输入正确的密码,依提示操作即可。
但是有些计算机即使正常安装了证书,也无法导出,如下图,导出私钥为不可选。
解决办法是,在安装证书的时候,要勾选对应选项,如下图所示:
2)双击证书(针对.cer格式或.p12格式),按提示安装,选择自动存储模式
这种方法不起作用,安装完依然不可用,截图如下。
选择,这种方式指定存储区也不起作用。
要导出格式,然后双击安装才可以。
4 访问自签名Https网站
一般添加安全例外就可以,但是有些会显示不全,解决办法是:
例如火狐浏览器中,点击暂时解除保护。这是因为https请求返回的页中含有http的请求,这种混合类型的被浏览器认为是不安全的。
ASP.NET Web API编程——使用自签名SSL证书的更多相关文章
- ASP.NET Web API编程——路由
路由过程大致分为三个阶段: 1)请求URI匹配已存在路由模板 2)选择控制器 3)选择操作 1匹配已存在的路由模板 路由模板 在WebApiConfig.Register方法中定义路由,例如模板默认生 ...
- ASP.NET Web API编程——序列化与内容协商
1 多媒体格式化器 多媒体类型又叫MIME类型,指示了数据的格式.在HTTP协议中多媒体类型描述了消息体的格式.一个多媒体类型包括两个字符串:类型和子类型. 例如: text/html.image/p ...
- ASP.NET Web API编程——构建api帮助文档
1 概要 创建ASP.NET Web Api 时模板自带Help Pages框架. 2 问题 1)使用VS创建Web Api项目时,模板将Help Pages框架自动集成到其中,使得Web Api项目 ...
- ASP.NET Web API编程——模型验证与绑定
1.模型验证 使用特性约束模型属性 可以使用System.ComponentModel.DataAnnotations提供的特性来限制模型. 例如,Required特性表示字段值不能为空,Range特 ...
- ASP.NET Web API编程——版本控制
版本控制 版本控制的方法有很多,这里提供一种将Odata与普通web api版本控制机制统一的方法,但也可以单独控制,整合控制与单独控制主要的不同是:整合控制通过VersionController ...
- ASP.NET Web API编程——文件上传
首先分别介绍正确的做法和错误的做法,然后分析他们的不同和错误之处,以便读者在实现此功能时可避开误区 1正确的做法 public class AvaterController : BaseApiCont ...
- ASP.NET Web API编程——异常捕获
1 向客户端发送错误消息 使用throw new HttpResponseException()向客户端抛出错误信息. HttpResponseException包含两个重载的构造函数,其中一个是构造 ...
- ASP.NET Web API编程——文件下载
断点续传基本原理 HTTP协议中与断点续传相关的HTTP头为:Range和Content-Range标头,断点续传实现流程: 1)客户端请求下载一个文件,文件的总长度为n:已经下载了一部分文件,长度为 ...
- ASP.NET Web API编程——客户端调用
可以使用HttpClient这个调用Web API,下面是HttpClient的定义,列举了一些常用的方法,其中还有一些没有列举,包括重载的方法. public class HttpClient : ...
随机推荐
- HTML <a>标签的使用
<a></a>标签称作链接标记,由<a>与</a>所围的文字.图片等可以作为一个链接 Eg:<a href="index.html&qu ...
- redis(1)简介
一.nosql简介 RDBMS(关系型数据库)提供的结构化编程,让数据建模以及应用程序编程变得非常简单,带来了非常高的经济效益,并且学习成本也比较低.但在当今数据大爆炸时代,每时每刻都会海量的数据产生 ...
- RabbitMQ基础--总结
一. RabbitMQ的五种工作场景: 1. 单发单收 2. 单发送多接收 +++++++++++++++++++++前面两种没有使用exchange++++++++++++++++++ 3. Pub ...
- Synchronized的原理及自旋锁,偏向锁,轻量级锁,重量级锁的区别(摘抄和理解)
1. 自旋锁的优缺点: 自旋锁 自旋锁原理非常简单,如果持有锁的线程能在很短时间内释放锁资源,那么那些等待竞争锁的线程就不需要做内核态和用户态之间的切换进入阻塞挂起状态,它们只需要等一等(自旋),等持 ...
- PHP打印日期
<?php header("content-type:text/html;charset=utf-8"); echo "今天是 " . date(&quo ...
- JS 面向对象之继承---多种组合继承
1. 组合继承:又叫伪经典继承,是指将原型链和借用构造函数技术组合在一块的一种继承方式. 下面来看一个例子: function SuperType(name) { this.name = name; ...
- Android recyclerview删除item刷新列表
删除item坑 mModels.remove(i); notifyItemRemoved(i); //必须调用这行代码 notifyItemRangeChanged(i, mModels.size() ...
- 139.00.006 Git学习-标签管理Tag
@(139 - Environment Settings | 环境配置) 一.Why 发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取 ...
- 任务九:使用HTML/CSS实现一个复杂页面
任务目的 通过实现一个较为复杂的页面,加深对于HTML,CSS的实战能力 实践代码的复用.优化 任务描述 通过HTML及CSS实现设计稿 设计稿PSD文件(点击下载),效果如 效果图(点击打开) 整个 ...
- Stack vs Heap
http://gribblelab.org/CBootcamp/7_Memory_Stack_vs_Heap.html Table of Contents Stack vs Heap The Stac ...