zoukankan      html  css  js  c++  java
  • IIS 下调用证书出现异常解决方案 (C#)

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

    一. 确保证书已安装

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

     

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

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

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

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

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

    3. 将 ApplicationPoolIdentity 修改为 NetworkService

     

    三. 对证书进行授权

    1. 下载并安装 winhttpcertcfg.exe 工具(Windows HTTP Services Certificate Configuration Tool)。安装完成后该工具在 C:Program Files (x86)Windows Resource KitsTools 或者 C:Program FilesWindows Resource KitsTools 文件夹下。

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

    3. 在控制台中输入指令 cd C:Program Files (x86)Windows Resource KitsTools 按[回车]键,进入工具所在目录

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

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

    成功后结果如下图:

    关于指令的一点说明:

    winhttpcertcfg -g -c LOCAL_MACHINEMY -s "证书名称" -a "IIS程序池标识"

    -g 代表授权

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

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

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

    参考博文:记ASP.NET 使用 X509Certificate2 出现的一系列问题

  • 相关阅读:
    Jmeter 文件上传
    Jmeter数据库连接
    初探持续集成框架--->jenkins 安装及使用
    Centos7-服务命令总结
    安装--->Tomcat监控工具Probe
    为什么要用Spring IOC
    业务接口设计总结
    Hessian HelloWorld
    日期控件的使用,My97DatePicker
    idea 启动debug时 throw new ClassNotFoundException(name);
  • 原文地址:https://www.cnblogs.com/similar/p/6831899.html
Copyright © 2011-2022 走看看