2013-04-24 147 views
2

我在管理我的代碼中的Azure證書時遇到了一些困難。 事實上,我試圖使用Azure REST Services API(例如創建HTTP請求)來從我的Azure網站了解我的服務狀態。無法在本地Azure Web角色中添加證書VM

它在本地調試中運行良好,但我的web角色接口對證書管理器有一些限制。貝婁是我做的:

// this method stores a certificate from the resources 
// to the local certificates manager 
private X509Certificate2 StoreCertificate(Certificates certName) 
{ 
    X509Certificate2 newCert = null; 

    // get certificate from resources 
    newCert = this.GetCertificateFromResources(certName); 

    // store it into the local certificate manager 
    if (newCert != null) 
    { 
     var store = new X509Store(
       StoreName.TrustedPeople, 
       StoreLocation.LocalMachine 
      ); 

     store.Open(OpenFlags.ReadWrite); 
     store.Add(newCert); 
    } 

    // reset ref and try to load it from manager 
    newCert = null; 

    newCert = this.GetCertificate(certName); 

    return newCert; 
} 

當我嘗試添加證書時,Access被拒絕錯誤附加。

有什麼想法?我可以將證書存儲到Azure VM嗎? 我應該使用特殊位置來存儲這些嗎?

回答

1

您是否正在使用雲服務(網絡/輔助角色)?如果是這樣,哪個OS家族?我見過一些報告顯示,使用OS系列3的工作者角色,您需要使用提升的權限運行角色,以便從本地證書商店讀取證書。不知道是否也適用於Web角色並添加到證書存儲區。

是否已通過Azure管理門戶(或通過REST API或PowerShell)添加了服務證書?

+0

關於_「提升的權限」_這點是我需要的 - 謝謝。你提到你已經看到一些關於需要提升的權限的報告 - 你有沒有提及這個? – 2014-06-07 16:49:52

1

嗯,我發現很多東西:

  1. 我在一個網站上部署我的代碼,我不能在Azure中的證書添加到共享VM
  2. 我試圖連接到虛擬機在遠程桌面會話中,我手動添加了一個證書。

即使在這種情況下,InvalidOperationException中也有(403)Forbidden錯誤。

因此,這裏的當前狀態:

  • 證書已創建(makecert),並在承載
  • 這個證書已經上傳了我的Web角色(部署在服務)的VM手動添加到Azure帳戶證書和Azure服務證書(部署我的Web角色的證書)
  • 此證書的指紋已添加到我的代碼中,我可以在執行代碼時訪問證書

所以2個問題:

  1. 有什麼我應該用我的證書嗎?
  2. 當我在Azure模擬器本地嘗試我的web角色時,一切正常。在發佈/部署步驟中是否需要更新特殊設置?

感謝您的幫助。

1

爲了節省其他開發人員的時間,這裏是我做過什麼要解決的主要問題:

  1. 連接到虛擬機可部署的Web角色:see there
  2. 創建證書:see there
  3. 最終與證書管理器(MMC.EXE)

然後該證書可以從代碼播放。

+0

謝謝。我有這個完全相同的問題,並一直在掙扎了很長一段時間,直到我找到這篇文章。 – Doug 2013-07-29 21:30:37

相關問題