我有一个使用公共REST API的Rails应用程序,它使用SSL客户端证书对API客户端进行身份验证。在Rails应用程序中签署新证书
我希望该应用充当简单的CA. 管理员用户应该可以访问网站上的一个页面并申请一个新的证书。应用程序应该生成一个新的SSL证书,并使用应用程序的私钥进行签名,并以某种形式将其返回给管理员用户。
admin用户将在客户端应用程序中安装此证书。这些应用程序将能够使用新的证书来访问REST API。
实现这个最简单的方法是什么?在将openssl
配置为服务器上的CA(例如like this)后,我知道生成和签署新证书的唯一方法是使用openssl
命令行。我需要这样做吗,并且在Rails中使用反引号与openssl
进行通信?这看起来很乏味和脆弱。
我该如何将证书退回给管理员?我可以将它们作为文本文件传递给他们下载。我已经看到允许用户从浏览器申请证书的CA Web界面,然后直接将证书安装到浏览器中。然后,管理员必须导出证书以将其传递给客户端脚本。
我认为Rails没有任何种类的“acts_as_CA
”gem?
[请注意,我已经知道如何对我的私钥进行客户端请求验证。这个问题具体涉及颁发新证书。]