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.pem
をserver.conf
に追加しました。
私が正しいことを実行し、実際にアクセスをブロックすることを確認できる方法はありますか?
また、この「データベース」がどこに保存されているのか、何を指しているのかわかりません。このデータベースを検査する方法はありますか?
Easy-rsaディレクトリには、「revoke-full」ファイルがあります。 user/keyをパラメーターとしてこのスクリプトを実行すると、easy-rsa/keysディレクトリーのindex.txtファイルが更新されます。
ユーザーの左から1列目に「R」(取り消し済み)が表示されます。
私のサーバーには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が使用されます。証明書が取り消された場合、接続はドロップされます。
使用する
./list-crl
easy-rsaディレクトリから、失効した証明書のシリアル番号を表示します。
また、openvpnログで「CRL CHECK FAILED」メッセージを確認してください。