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