1

SSLクライアント証明書を使用してAPIクライアントを認証するパブリックRESTAPIを備えたRailsアプリケーションがあります。

アプリを単純なCAとして機能させたいのですが。管理者ユーザーは、サイトのページにアクセスして、新しい証明書を要求できる必要があります。アプリケーションは、アプリケーションの秘密鍵で署名された新しいSSL証明書を生成し、それを何らかの形式で管理者ユーザーに返す必要があります。

管理者ユーザーは、この証明書をクライアントアプリにインストールします。これらのアプリは、新しい証明書を使用してRESTAPIにアクセスできるようになります。

これを実装する最も簡単な方法は何ですか?新しい証明書を生成して署名することを私が知っている唯一の方法は、サーバー上でCAとして構成した後(たとえば、このようにopenssl)、コマンドラインを使用することです。それを行う必要があり、 Rails内のバックティックを使用して通信する必要がありますか?それは厄介で壊れやすいようです。opensslopenssl

証明書を管理者に返却するにはどうすればよいですか?ダウンロードするテキストファイルとして証明書を渡すことができます。ユーザーがブラウザーから証明書を要求し、その証明書をブラウザーに直接インストールできるCAWebインターフェースを見てきました。次に、管理者は証明書をエクスポートしてクライアントスクリプトに渡す必要があります。

acts_as_CARails用の""宝石はないと思いますか?

[秘密鍵に対してクライアント要求を認証する方法をすでに知っていることに注意してください。この質問は、特に新しい証明書の発行に関連しています。]

4

3 に答える 3

2

「CertificateDepot」と呼ばれるツールを使用して、過去に同様のことをどのように行ったかを確認することをお勧めします。

于 2012-10-23T10:41:00.460 に答える
0

openssl gem またはsshkeyを使用してキーペアを生成できます。

証明書をテキスト ファイルまたはプレーン テキストとして渡す

于 2012-10-23T10:32:44.180 に答える
0

私はこれを今働いています。Ruby の OpenSSL ライブラリには、CA の作業に必要なすべてのメソッドが含まれており、明確な例とともにここに文書化されています。

サーバーに OpenSSL CA をセットアップする必要はありませんでした (上記の質問にリンクされているように)。これは、コマンド ライン openssl を CA として使用するためです。Ruby から使用するには、独自の CA 証明書ストレージ、一意のシリアル番号などを管理する必要があります。

クライアント証明書をブラウザに直接ダウンロードできるようにする場合は、ファイル拡張子が「.p12」の PCKS12 バンドルを提供します。http://www.ruby-doc.org/stdlib-1.9.3/libdoc/openssl/rdoc/OpenSSL/PKCS12.htmlを参照してください。 「name」パラメータにはわかりやすい名前を使用してください。これは、これにより、ブラウザのキーの選択ダイアログで簡単に見つけることができます。CA 証明書を PKCS12 バンドルに含めないでください。Windows は、完全に信頼されたルート CA として CA をインストールするようユーザーに求めます。

于 2012-10-23T10:37:17.487 に答える