http升级https之旅

1、自制证书

  商用证书必须要有域名才能用,可惜项目上没有域名,只有ip;

  自制证书过程参考地址:https://www.cnblogs.com/hdwgxz/p/7857578.html

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

  自制证书包括一个根证书,一个https服务证书和一个客户端证书,如下图所示:

  

  注:服务器上安装服务证书,需访问的客户端安装客户端证书,如果说postman要请求https接口就必须先导入对应的crt格式的客户端证书。

  注:根证书设置的password要记住,在后面安装证书的过程中需要用到。

  注意:::organizaName和commonName得有区分,不然证书会提示“windows没有足够信息不能验证该证书”,https网站发布时也会提示“证书链中缺少一个或多个中间证书”。

  如下图,左侧为错误示例,右侧为正确示例,最终报不报错就看这一步了(都是坑!)

   

2、服务器证书安装

  2.1 导出证书

  导出的证书有多种格式,实践证明我们需要导出的是p12格式的证书,如下图所示:

  

 

 

  2.2 证书受信

  导出的p12格式证书在IIS上也是不能直接安装或者导入的,我们需要运行“certmgr.msc”,进入系统的证书管理器中将该证书导入受信区,导入过程全程默认即可(中间需输入密码),如下图所示:  

  

 

 

 2.3 证书转换

  在IIS证书管理中右键“导入”的模式,可看到只支持pfx格式的证书,那么我们就需要将受信区安装的证书导出为pfx格式(中间需要输入密码),如下图:

  

 

  

 2.4 IIS导入证书

  在IIS证书管理中右键导入pfx证书,如下图:

 

 

3、https服务配置

  默认的wcf服务只支持http服务,直接将原有的http服务发布为https服务,访问svc的时候就会报错,因此需要先改造原有的服务配置;

  我参考的文档是这个:https://blog.csdn.net/weixin_30802273/article/details/97927699;

  里面写的有点乱,经过不断尝试,其实特别简单,如下图所示:

  

 

  改造之后这个服务满足了https的发布条件,就不能再次发布为http服务了。

4、https发布

  一切准备就绪之后发布就简单了,只需要选择https协议,选择已安装的ssl证书即可,如下图所示:

   

 

  到这一步,已经可以基于浏览器预览https服务了。

4、postman测试https服务接口

  在postman中准备测试接口,才发现https服务是无法直接访问的,网上随便一查就知道该导入https客户端证书了;

  参考地址:https://blog.csdn.net/weixin_44846959/article/details/113127771;

  这个就简单了,选择客户端证书,导出postman需要的crt格式文件,在postman中导入即可,如下图所示:

  

 

  这里的host就是发布的服务的ip和端口,下面的三类文件只需要有一个即可,我这里选的就是第一个crt文件。

  如此,https接口测试成功返回数据!

 

 

 

 

  

 

posted @ 2021-12-09 17:59  风谷逍遥客  阅读(198)  评论(0编辑  收藏  举报