利用makecert.exe工具生成的X509证书在winform程序中运行正常,但是给部署在IIS中的应用程序用却获取不到证书信息,返回为空。
原因是,iis没有权限读取位于证书存储区的X509证书,需要授权才可以。
授权方式:
需要借助微软提供的winhttpcertcfg工具,去网上下载并安装,安装完成后会在本地路径下看到这个工具:
该工具使用语法:winhttpcertcfg -g -c LOCAL_MACHINEMY -s "证书名称" -a "IIS程序池标识"
cmd运行命令,定位到工具所在的目录,运行上面的命令,如:
winhttpcertcfg -g -c LOCAL_MACHINEMY -s "passWord12306" -a "LOGICSERVERxinfuservice"
成功后如下:
需要注意的是,该命令是授权IIS访问位于“本地计算机”存储区==》个人==》证书存储区的证书。
这样,IIS就可以访问到X509证书了。