我有我的配置網頁asp.net API服務來驗證通過客戶端證書請求問題證書認證
我做專業的ASP.NET Web API安全描述步驟:
- 我創建使用makecert.exe證書
makecert.exe -r -n "CN=MobileTradeDataGateway" -pe -sv MobileTradeDataGateway.pvk -a sha256 -cy authority MobileTradeDataGateway.cer
和makecert.exe -iv MobileTradeDataGateway.pvk -ic MobileTradeDataGateway.cer -n "CN=DataGateway1" -pe -sv DataGateway1.pvk -a sha256 -sky exchange DataGateway1.cer -eku 1.3.6.1.5.5.7.3.2
- 我安裝MobileTradeDataGateway證書服務器受信任的根證書頒發機構在客戶端了。在客戶端個人權限中安裝DataGateway1。
- 配置站點以接受證書並啓用。啓用匿名身份驗證。
- 創建DelegatingHandler並將其添加到mvc中的messagehandlers集合以檢查證書。
調用Web API方法
變種的CertStore =新的X509Store(StoreLocation.CurrentUser);certStore.Open(OpenFlags.ReadOnly); var collection = certStore.Certificates.Find(X509FindType.FindByIssuerName,「MobileTradeDataGateway」,true); var cert = collection [0]; certStore.Close(); var messageHandler = new WebRequestHandler(); messageHandler.ClientCertificates.Add(cert); var client = new HttpClient(messageHandler){BaseAddress = new Uri(「...」)}; var res = client.GetAsync(「/ api/orderuploader?number = 5」)。
。
一切工作正常我的本地機器和網絡,我的機器是服務器。 但是,當我把它部署到Azure雲服務,我得到空 var cert = request.GetClientCertificate(); // here is null
在我的自定義委託處理
關我當然啓用IIS以接受證書和correctelly把證書在受信任的根證書頒發機構
任何想法?
沒問題是從代理處理程序中讀取HttpRequestMessage的證書 –