如何以编程方式将用户X509证书转发到另一台服务器?

时间:2012-06-14 11:05:35

标签: ruby-on-rails ruby openssl jruby x509

我有一个部署到Tomcat的JRuby on Rails应用程序,它设置为使用SSL进行双向/ mutal身份验证。当请求进入我的Rails应用程序时,它会向外部服务器发出请求。该外部服务器需要发起请求的人的证书。我需要从我的Rails应用程序中获取证书并在向外部服务器(另一个Rails应用程序)发出请求时将其转发。

我可以在Rails应用程序中的控制器中获取X509Certificate(java)对象。然后,我可以获得DER字符串(X509CertificateImpl#getEncoded,类似的东西),如果需要,我可以构建一个PEM字符串......但是在向外部Rails应用程序发出请求时我可以如何转发它?

我尝试将urlsafe base64编码的PEM版本粘贴到标题中,但是当我在外部rails应用程序上拔出该标题时,它似乎只获得了一大块(60个字符而不是2095个已发送)。

关于如何做到这一点的任何想法/想法?

1 个答案:

答案 0 :(得分:0)

如果外部服务器需要客户端SSL身份验证而不仅仅是证书,那么您就不走运了。原因是SSL身份验证是使用私钥执行的,而不是证书本身。并且私钥不会传输到服务器。所以抓住证书不会给你什么。