IIS下调用证书出现异常的解决方法 (C#)

程序发布前,跑在vs上是没问题的,当发布后,程序就报错了。通过系统日志找到了错误所在:证书调用时出现了异常。原因是:在iis上调用证书是需要配置的,具体配置如下:

一. 确保证书已安装

1. 点击 [开始] -> [运行] -> 键入[mmc] 进入“控制台”界面 -> 选择[文件] -> [添加/删除管理单元]

2. 选择[证书] -> [计算机账户] -> [下一步] -> [完成]

3. 选择[个人] -> [证书] -> [所有任务] -> [导入] 。如果证书已存在则跳过此步骤,不用做导入操作。

二. 修改iis上对应项目的程序池标识

1. 打开iis -> 选择[应用程序池] -> 选中对应的项目 -> 选择右侧的[高级设置]

2. 找到[进程模型] -> 修改[标识]属性值

3. 将 applicationpoolidentity 修改为 networkservice

三. 对证书进行授权

1. 下载并安装 工具(windows http services certificate configuration tool)。安装完成后该工具在c:\program files (x86)\windows resource kits\tools 或者c:\program files\windows resource kits\tools 文件夹下。

2. 打开[开始] -> [运行] ->键入[cmd]

3. 在控制台中输入指令 cdc:\program files (x86)\windows resource kits\tools 按[回车]键,进入工具所在目录

4. 进入指定目录后,输入指令 winhttpcertcfg -g -c local_machine\my -s "证书名称" -a "iis程序池标识"

5. 按[回车]键,执行指令

成功后结果如下图:

关于指令的一点说明:

winhttpcertcfg -g -c local_machine\my -s "证书名称" -a "iis程序池标识"

-g 代表授权

-c 代表证书在计算机上安装存储位置

-s "证书的名称" (证书名称如何查看?如下图:)

-a "iis程序池标识" (上面我们将iis程序池标识改成了networkservice) 所以是 -a "networkservice"

参考博文:记asp.net 使用 x509certificate2 出现的一系列问题

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

本文链接:https://my.lmcjl.com/post/7220.html

展开阅读全文

4 评论

留下您的评论.