構建安全的XmlWebService系列之wse之證書儲存位置
我們在前幾天對xml web service的安全性提出了一些建議,大家可以通過以下地址訪問:
構建安全的Xml Web Service系列之初探使用Soap頭
構建安全的Xml Web Service系列之如何察看SoapMessage
我曾經在上面幾篇文章中承諾過要寫一些有關wse3.0的,可一直沒有時間,自身對wse3.0的認識也是非常有限,所以一直沒有實現諾言,很是愧疚,今天我就一個小問題作為wse的引子,希望大家繼續關注和支援我。
第一次使用windows live writer,難免有排版和疏漏,見諒
今天發生了一件十分鬱悶的事情,好多天前我用wse3證書驗證方式架設了一個web service,另外又多此一舉的加上了SSL,並在本地安裝根證書和用於wse驗證證書,在本地建立的客戶端是一個web application,在vs 2005裡面除錯一直沒有問題,好長時間了,我還以為一切順利呢,給合作方也寫了文件說明,發給了人家,結果今天對方報告說將網站釋出在開發機上後,無法訪問,錯誤為在指定儲存位置找不到x.509證書,我在本機測試了下,你說鬱悶不?在vs2005裡面除錯中執行的好好的頁面,釋出到IIS中就有這個問題,我將證書儲存在CurrentUser的My下面了,我開始就懷疑network services 不能訪問這個儲存位置造成這個錯誤,但是為何在vs2005中除錯就沒有問題呢?細想,原來在vs2005的虛擬IIS是不是執行在network service賬戶下的,因為我每次除錯,並沒有看到w3wp程式啟動,network services賬戶是不能訪問當前使用者儲存下的證書的,這個是一個wse訪問證書因為許可權問題最常見的問題,而windows應用程式因為執行在當前賬戶上卻可以訪問。而network service能夠訪問本地計算機儲存位置下的證書,於是我將證書重新匯入到本地計算機-個人,然後將<x509 storeLocation=”CurrentUser”更改為<x509 storeLocation=”LocalMachine”,重新開啟網頁,程式就可以了。
通過今天這個小小的問題,我總結出三條經驗:
1)當我們遇到同樣環境下,同一個程式一個能執行,一個不能執行,我們首先可以考慮的是許可權的問題,我們程式執行的賬戶是否有許可權訪問某個資源。
2)vs2005中虛擬的IIS和IIS存在著些許的差異,不要圖一時方便,用這個作為程式正常的標準,最好還是在iis裡面除錯和執行程式,可以少一些麻煩。
3 ) 當您的應用程式為執行在iis的應用程式的時候,如果不採用模擬,您的應用程式是不能訪問位於當前使用者下的證書的,包括用於SSL的證書,這個問題更典型,如果您在ie中能訪問https的頁面,在程式中卻不能的話,那問題可能就出在這裡。ie是執行在當前使用者的,所以能訪問當前使用者下證書,而iis中的程式是執行在network services的,不能訪問,您必須將證書存放在本地計算機才可以。
相關文章
- 微服務架構 | 7.2 構建使用 JWT 令牌儲存的 OAuth2 安全認證微服務架構JWTOAuth
- .NET 證書加密 儲存儲存 IIS授權加密
- kubernetes系列(十二) - 儲存之Secret
- iOS開發證書配置系列之——推送證書配置導引iOS
- PostgreSQL儲存引擎之page結構SQL儲存引擎
- Android資料儲存之SharedPreferences及如何安全儲存Android
- 修改docker的預設儲存位置及映象儲存位置Docker
- MySQL入門系列:儲存程式(三)之儲存過程簡介MySql儲存過程
- MySQL入門系列:儲存程式(二)之儲存函式簡介MySql儲存函式
- kubernetes系列(十三) - 儲存之Volume
- kubernetes系列(十四) - 儲存之PersistentVolume
- PostgreSQL儲存引擎之heap tuple結構SQL儲存引擎
- SpringSession系列-儲存機制之Redis&MapSpringGseSessionRedis
- 分散式儲存技術解讀系列之GFS分散式
- dart系列之:dart類中的建構函式Dart函式
- 線性表之順序儲存結構
- 線性表之鏈式儲存結構
- Android 儲存系統之架構篇Android架構
- 關於SSL證書之證書鏈
- Hive之儲存格式Hive
- 共享儲存之ISCSI
- 儲存系統實現-構建自己的儲存系統(一)
- Gradle系列之構建指令碼基礎Gradle指令碼
- 在證書儲存區中找不到清單簽名證書
- Flutter持久化儲存之檔案儲存Flutter持久化
- 大資料儲存平臺之異構儲存實踐深度解讀大資料
- SQL Server2008儲存結構之物件儲存檢視SQLServer物件
- Oracle資料庫儲存結構之間的關係Oracle資料庫
- Android中的資料儲存之檔案儲存Android
- Flutter持久化儲存之key-value儲存Flutter持久化
- Flutter持久化儲存之資料庫儲存Flutter持久化資料庫
- 儲存學習之開源儲存軟體
- MySQL之四 儲存引擎MySql儲存引擎
- MySQL之儲存過程MySql儲存過程
- Hive之 資料儲存Hive
- SQL Server 2008儲存結構之PFS結構SQLServer
- SQL Server 2008儲存結構之IAM結構SQLServer
- 密碼學系列之:PKI的證書格式表示X.509密碼學