ASP.NET Web API编程——使用自签名SSL证书

时间:2023-12-10 17:11:14

1自签名SSL证书的创建

创建自签名SSL工具xca为:https://sourceforge.net/projects/xca/

创建过程

1)创建根证书

打开软件,界面如下。

ASP.NET Web API编程——使用自签名SSL证书

点击ASP.NET Web API编程——使用自签名SSL证书,看到下拉菜单,选择ASP.NET Web API编程——使用自签名SSL证书,创建新的数据库。

ASP.NET Web API编程——使用自签名SSL证书

给文件命名,选择文件存储的位置,这里我放在了E:\CA这个文件夹下

ASP.NET Web API编程——使用自签名SSL证书

点击保存,弹出下页,填写密码

ASP.NET Web API编程——使用自签名SSL证书

ASP.NET Web API编程——使用自签名SSL证书

点击ok,弹出下页

ASP.NET Web API编程——使用自签名SSL证书

点击ASP.NET Web API编程——使用自签名SSL证书,弹出下页

ASP.NET Web API编程——使用自签名SSL证书

签名算法改为SHA 256,其他不变,点击ASP.NET Web API编程——使用自签名SSL证书,然后点击ok,弹出下页

ASP.NET Web API编程——使用自签名SSL证书

点击ASP.NET Web API编程——使用自签名SSL证书,填写信息,如下:

ASP.NET Web API编程——使用自签名SSL证书

点击ASP.NET Web API编程——使用自签名SSL证书,弹出下页

ASP.NET Web API编程——使用自签名SSL证书

确认无误,点击ASP.NET Web API编程——使用自签名SSL证书,成功显示下页

ASP.NET Web API编程——使用自签名SSL证书

点击ok,显示下页

ASP.NET Web API编程——使用自签名SSL证书

点击ok,创建成功显示下页

ASP.NET Web API编程——使用自签名SSL证书

点击ok,至此成功生成了根证书。

2)创建服务端证书

在上述根证书创建成功的基础上,选中已生成的根证书。

ASP.NET Web API编程——使用自签名SSL证书

点击ASP.NET Web API编程——使用自签名SSL证书,弹出下页

ASP.NET Web API编程——使用自签名SSL证书

修改加密算法为SHA 256,证书模板有三个,选择ASP.NET Web API编程——使用自签名SSL证书

ASP.NET Web API编程——使用自签名SSL证书

ASP.NET Web API编程——使用自签名SSL证书

点击ASP.NET Web API编程——使用自签名SSL证书,点击ok,弹出下页

ASP.NET Web API编程——使用自签名SSL证书

其他操作与生成根证书类似,生成好了以后,页面如下:

ASP.NET Web API编程——使用自签名SSL证书

3)创建客户端证书

与创建服务端证书基本一致,不同的是选择ASP.NET Web API编程——使用自签名SSL证书

ASP.NET Web API编程——使用自签名SSL证书

2 导出证书

选中证书,点击ASP.NET Web API编程——使用自签名SSL证书

ASP.NET Web API编程——使用自签名SSL证书

选择文件夹和导出格式,导出格式有多种,根据需求导出。

ASP.NET Web API编程——使用自签名SSL证书

3 IIS中安装证书

注意同一个证书不要安装多次,若要重装,那么先删除已安装的证书。

打开IIS,点击根目录,双击ASP.NET Web API编程——使用自签名SSL证书

ASP.NET Web API编程——使用自签名SSL证书

右键,弹出菜单,点击完成证书申请,即红框部分

ASP.NET Web API编程——使用自签名SSL证书

弹出页,选择生成好的证书(证书需要以ASP.NET Web API编程——使用自签名SSL证书格式导出)

ASP.NET Web API编程——使用自签名SSL证书

命名并点击确定

ASP.NET Web API编程——使用自签名SSL证书

至此,不同的IIS会有不同的反应,有些服务器导入成功,有些服务器报错:

ASP.NET Web API编程——使用自签名SSL证书

有的导入似乎成功,但刷新页面,导入的证书消失。对于这种情况,导入证书后别刷新,右键查看证书,截图如下:

ASP.NET Web API编程——使用自签名SSL证书

ASP.NET Web API编程——使用自签名SSL证书

针对上述两种错误的解决办法是:

1 )报错的解决方案是

ASP.NET Web API编程——使用自签名SSL证书

先将证书安装到计算机受信区,然后打开证书管理器,即开始处运行:certmgr.msc

选中证书,右键操作如图所示。

ASP.NET Web API编程——使用自签名SSL证书

选择ASP.NET Web API编程——使用自签名SSL证书

ASP.NET Web API编程——使用自签名SSL证书

依提示操作,到输入密码时,这里指的就是创建证书的密码

ASP.NET Web API编程——使用自签名SSL证书

输入正确的密码,依提示操作即可。

但是有些计算机即使正常安装了证书,也无法导出,如下图,导出私钥为不可选。

ASP.NET Web API编程——使用自签名SSL证书

解决办法是,在安装证书的时候,要勾选对应选项,如下图所示:

ASP.NET Web API编程——使用自签名SSL证书

2)双击证书(针对.cer格式或.p12格式),按提示安装,选择自动存储模式ASP.NET Web API编程——使用自签名SSL证书

这种方法不起作用,安装完依然不可用,截图如下。

ASP.NET Web API编程——使用自签名SSL证书

ASP.NET Web API编程——使用自签名SSL证书

ASP.NET Web API编程——使用自签名SSL证书

ASP.NET Web API编程——使用自签名SSL证书

选择ASP.NET Web API编程——使用自签名SSL证书,这种方式指定存储区也不起作用。

ASP.NET Web API编程——使用自签名SSL证书

要导出ASP.NET Web API编程——使用自签名SSL证书格式,然后双击安装才可以。

 

4 访问自签名Https网站

一般添加安全例外就可以,但是有些会显示不全,解决办法是:

例如火狐浏览器中,点击暂时解除保护。这是因为https请求返回的页中含有http的请求,这种混合类型的被浏览器认为是不安全的。

ASP.NET Web API编程——使用自签名SSL证书