0

我目前正在 Rails 中构建一个新的基于 Web 的系统,以取代旧的 .NET 解决方案(独立的 Win32 应用程序)。该系统允许分析师执行许多操作。在许多情况下,用户请求实际上是通过调用第三方 Web 服务来提供的。Web 服务使用第三方颁发的 X.509 证书进行保护。进行调用的 .NET 代码如下:

(在 Visual Studio 中,我在相应的 URL 中声明了一个名为“ProductionServices”的 Web/服务引用)

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 应用程序看起来很漂亮。但是,我现在需要在 rails 中复制上面的 .NET 逻辑,这样我就可以将 Web 服务数据也拉到我的视图中。我找到了如何做到这一点的非常基本的例子,但从来没有一个使用客户端证书的好例子。谁能指出我正确的方向?

任何帮助是极大的赞赏。

谢谢。

4

1 回答 1

0

假设您使用的是 Net::HTTP,请看这里:

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

在页面的中间大约有一个名为“带有 PEM 证书的 SSL/HTTPS 请求”的示例。

如果您在 Net::HTTP(HTTParty、Typhoeus 等)周围使用某种包装器,这将取决于相关库。是这样吗?

于 2012-10-10T00:41:07.933 回答