【发布时间】:2012-10-23 10:23:51
【问题描述】:
我有一个带有公共 REST API 的 Rails 应用程序,它使用 SSL 客户端证书对 API 客户端进行身份验证。
我希望该应用充当简单的 CA。 管理员用户应该能够访问站点上的页面并请求新证书。应用程序应该生成一个新的 SSL 证书,用应用程序的私钥签名,并以某种形式将其返回给管理员用户。
然后管理员用户将在客户端应用程序中安装此证书。然后,这些应用将能够使用新证书访问 REST API。
实现这一点的最简单方法是什么?我知道生成和签署新证书的唯一方法是使用openssl 命令行,在将openssl 配置为服务器上的CA(例如like this)之后。我是否需要这样做,并在 Rails 中使用反引号与openssl 通信?这看起来既繁琐又脆弱。
我应该如何将证书退还给管理员?我可以将它们作为文本文件传递出去以供下载。我见过 CA Web 界面允许用户从浏览器请求证书,然后将证书直接安装到浏览器中。然后管理员必须导出证书以将其传递给客户端脚本。
我认为 Rails 没有任何类型的“acts_as_CA”gem?
[请注意,我已经知道如何根据我的私钥对客户端请求进行身份验证。这个问题特别与颁发新证书有关。]
【问题讨论】:
标签: ruby-on-rails certificate ca