web-dev-qa-db-ja.com

DebianでOpenVPNクライアント証明書を取り消す方法

easy-rsa/2.0プログラムを使用して、OpenVPNのサーバーとクライアントの証明書を作成しました。クライアントのものをca.crtとともにクライアントにコピーしました。すべて良い。

盗まれたラップトップからクライアント証明書を取り消す必要があります。 /usr/share/doc/openvpn/examples/easy-rsa/2.0には、取り消しスクリプトがあります。これは正常に実行され、「データベースが更新されました」と表示されます。これは、examples/docフォルダーのサブディレクトリーにいくつかのファイルを作成します。

作成したcrl.pem/etc/openvpn/crl.pemにコピーし、crl-verify /etc/openvpn/crl.pemserver.confに追加しました。

私が正しいことを実行し、実際にアクセスをブロックすることを確認できる方法はありますか?

また、この「データベース」がどこに保存されているのか、何を指しているのかわかりません。このデータベースを検査する方法はありますか?

4
artfulrobot

Easy-rsaディレクトリには、「revoke-full」ファイルがあります。 user/keyをパラメーターとしてこのスクリプトを実行すると、easy-rsa/keysディレクトリーのindex.txtファイルが更新されます。

ユーザーの左から1列目に「R」(取り消し済み)が表示されます。

7
boris quiroz

私のサーバーにはeasy-rsaスクリプトがありませんでしたが、easy-rsaがなくても手動でopensslを使用してOpenVPNクライアント証明書を取り消すことができます。

多くの情報は この便利なリソース から取得されますが、OpenVPNサーバーが私のようにセットアップされている場合、認証局はOpenVPNサーバー設定と一緒に構成され、サーバー上で生成されたクライアント証明書(I Ansible + Sovereignを使用して、一度に多数のユーザーの証明書を設定します。

# as root in /etc/openvpn
openssl ca -config openssl-server-certificate.cnf -revoke /path/to/client.crt

これにより証明書が取り消されてデータベースが更新されますが、OpenVPNが証明書取り消しリストをチェックしていることを確認する必要があるため、server.confを編集し、crl-verifyで始まる行を確認します。見つからない場合は、追加します。

crl-verify /usr/share/openvpn/openssl-server.crl

(任意のパスを使用できますが、ほとんどのOpenVPNサーバーはnobody:nobodyとして実行するように構成されているため、/etc/openvpnではなく、世界中で実行可能なパスが必要です)

そして最後にOpenSSLに失効リストを再生成するように伝えます

openssl ca -config openssl-server-certificate.cnf -gencrl -out /usr/share/openvpn/openssl-server.crl

(または失効リストが存在する場所)。 OpenVPNサービスを再起動すると、構成への変更が取り込まれ、接続要求の確認時にCRLが使用されます。証明書が取り消された場合、接続はドロップされます。

4
Aaron D

使用する

./list-crl 

easy-rsaディレクトリから、失効した証明書のシリアル番号を表示します。

また、openvpnログで「CRL CHECK FAILED」メッセージを確認してください。

2
neutrinus