我需要編寫Web服務並將其託管在Azure中。該服務反過來會消耗來自外部站點的另一項服務。因此,我的Azure託管服務是此外部託管服務的客戶端。當我提出其他服務的請求時,我需要在我的請求中包含客戶端證書。Azure Web服務作爲客戶端使用客戶端證書作爲客戶端
有沒有人成功做到這一點?是否可以在天青網絡實例中安裝證書?它會重新啓動實例嗎?如果是這樣,指針將不勝感激。
我從來沒有與客戶端證書(甚至在「真實」客戶端)工作,所以請原諒我,如果這是一個newbee問題。
我需要編寫Web服務並將其託管在Azure中。該服務反過來會消耗來自外部站點的另一項服務。因此,我的Azure託管服務是此外部託管服務的客戶端。當我提出其他服務的請求時,我需要在我的請求中包含客戶端證書。Azure Web服務作爲客戶端使用客戶端證書作爲客戶端
有沒有人成功做到這一點?是否可以在天青網絡實例中安裝證書?它會重新啓動實例嗎?如果是這樣,指針將不勝感激。
我從來沒有與客戶端證書(甚至在「真實」客戶端)工作,所以請原諒我,如果這是一個newbee問題。
將在該webrole的VM中提供上載到雲服務中的證書(請參閱Azure門戶中該雲服務下的證書選項卡),該證書將託管您的webrole。因此,您可以從證書存儲中訪問它,並在進行外部Web服務調用時使用它。 在此計算器中發佈了一個示例。 Accessing a web service and a HTTP interface using certificate authentication
您可以通過Azure管理門戶添加證書,湛藍將其添加到計算機證書存儲,一旦它部署在虛擬機上的應用程序,或者你可以用你的應用程序保持,例如嵌入的資源和負載它手動並與您的web服務調用一起使用。就像這樣:
private X509Certificate2 GetAuthCertificate()
{
var assembly = Assembly.GetExecutingAssembly();
Stream stream = null;
var resources = assembly.GetManifestResourceNames();
foreach (var resource in resources)
{
if (resource.EndsWith(certificateFilename))
{
stream = assembly.GetManifestResourceStream(resource);
break;
}
}
if (stream == null)
throw new Exception("Certificate not found in embedded rersources");
using (var ms = new MemoryStream())
{
stream.CopyTo(ms);
var result = new X509Certificate2(ms.ToArray(), "password", X509KeyStorageFlags.Exportable);
return result;
}
}
Checj此鏈接,看看是否有幫助:http://www.dib0.nl/code/367-using-a-client-certificate-with-an-ssl-stream-in- C –