2012-10-09 34 views
0

我目前正在使用rails構建新的基於Web的系統以取代傳統的.NET解決方案(獨立的Win32應用程序)。該系統允許分析人員執行多項操作。在很多情況下,用戶請求實際上是通過調用第三方Web服務來服務的。 Web服務使用由第三方發佈的X.509證書進行保護。在.NET代碼,以使呼叫低於:帶有x.509證書的Web服務。將C#代碼移植到Rails中

(在Visual Studio中,我已經宣佈在相應的URL稱爲 'ProductionServices' 網絡/服務引用)

X509Certificate2 c = new X509Certificate2("filepath", "password"); 
using (ProductionServices.Items items = new ProductionServices.Items()) 
{ 
    try 
    { 
    //specify client certificate if needed 
    if (c != null) 
    items.ClientCertificates.Add(c); 

    XmlNode node = null; 

    node = items.getItemList(); 

    XmlDocument xd = new XmlDocument(); 
    xd.AppendChild(xd.ImportNode(node, true)); 

    ....... 

}

所以,在這一點上,我們有我們的導軌應用程序看起來不錯,拋光。不過,我現在需要在rails中複製上面的.NET邏輯,以便我可以將該Web服務數據也放到我的視圖中。我發現瞭如何做到這一點的非常基本的例子,但從來沒有一個使用客戶端證書的好例子。任何人都可以將我指向正確的方向嗎?

任何幫助是極大的讚賞。

謝謝。

回答

0

假設你正在使用的Net :: HTTP,看看這裏:

http://www.rubyinside.com/nethttp-cheat-sheet-2940.html

和大約一半,該頁面有標題爲 「SSL/HTTPS與PEM證書請求」 的一個例子。

如果您正在使用某種各地的Net :: HTTP(HTTParty,百頭巨怪等)包裝的那將取決於有關圖書館。是這樣嗎?

+0

好的,謝謝。這是一個很大的幫助。我雖然注意到一件事是,例如使用PEM文件,而我的證書的.p12。我做了一些研究,發現爲了使用這個例子,我需要中.P12容器文件不知何故闖入其.KEY和。質子交換膜的部分。或者你知不知道這是否應該使用OpenSSL的做,如果網:HTTP有一個更優雅的開箱即用的方式來處理以.p12證書? – ParserDoer

+0

不幸的是我不能說,我不熟悉的格式。 –