我有一个公共REST API,其验证使用SSL客户端证书API客户端的Rails应用程序。
我想应用程序作为一个简单的CA. 管理员用户应当能够在网站上浏览的网页,并申请新的证书。 该应用程序应生成新的SSL证书,与应用程序的私钥签名,并以某种形式返回它来管理用户。
然后,管理员用户将在客户端应用程序安装该证书。 然后,这些应用程序将能够使用新的证书来访问REST API。
什么是实现这一点的最简单的方法? 我知道生成并签署新证书的唯一方法是与openssl
命令行,配置后openssl
的服务器上的CA(例如, 像这样的 )。 我需要做的,并与之通信openssl
利用内幕Rails的反引号? 这似乎繁琐和脆弱。
我应该如何返回到证书管理员? 我可以只通过他们走出证书作为文本文件进行下载。 我已经看到了CA的Web界面,允许用户从浏览器请求一个证书,然后直接安装证书到浏览器中。 然后,管理员必须导出证书将它传递给客户端脚本。
我不认为存在什么样“的acts_as_CA
Rails的”宝石?
[请注意,我已经知道如何对我的私有密钥的客户端请求进行身份验证。 这个问题特别涉及发行新的证书。]