IIS 下調用證書出現異常解決方案 (C#) 記ASP.NET 使用 X509Certificate2 出現的一系列問題

程序發佈前,跑在vs上是沒問題的,當發佈後,程序就報錯了。經過系統日誌找到了錯誤所在:證書調用時出現了異常。緣由是:在IIS上調用證書是須要配置的,具體配置以下:html

 

一. 確保證書已安裝工具

1. 點擊 [開始] -> [運行] -> 鍵入[mmc]  進入「控制檯」界面 -> 選擇[文件] -> [添加/刪除管理單元]post

 

 

2.  選擇[證書] -> [計算機帳戶] -> [下一步] -> [完成]url

 

3. 選擇[我的] -> [證書] -> [全部任務] -> [導入]  。若是證書已存在則跳過此步驟,不用作導入操做。spa

 

 

二. 修改IIS上對應項目的程序池標識3d

1. 打開IIS -> 選擇[應用程序池] -> 選中對應的項目 -> 選擇右側的[高級設置]日誌

2. 找到[進程模型] -> 修改[標識]屬性值htm

3. 將 ApplicationPoolIdentity 修改成 NetworkServiceblog

 

 

 

 

三. 對證書進行受權進程

1. 下載並安裝 winhttpcertcfg.exe 工具(Windows HTTP Services Certificate Configuration Tool)。安裝完成後該工具在 C:\Program Files (x86)\Windows Resource Kits\Tools 或者 C:\Program Files\Windows Resource Kits\Tools 文件夾下。

2. 打開[開始] -> [運行] ->鍵入[cmd]

3. 在控制檯中輸入指令 cd C:\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 出現的一系列問題

相關文章
相關標籤/搜索