Debian 11で証明書機関(CA)を設定および構成する方法

はじめに

証明機関(Certificate Authority, CA)は、インターネット上での身元確認を目的としたデジタル証明書を発行する責任を持つ組織です。一般の利用者向けのウェブサイトや他のサービスの身元確認には一般的に公開されたCAが選ばれますが、閉鎖したグループやプライベートなサービスには通常、プライベートCAが使用されます。

プライベートな証明書発行機関を構築することで、クライアントとサーバー間の暗号化接続を必要とするプログラムの設定、テスト、および実行が可能になります。プライベートなCAを使用することで、インフラストラクチャ内のユーザー、サーバー、または個別のプログラムとサービスに対して証明書を発行することができます。

Linux上で、独自のプライベートCAを使用するプログラムの例には、OpenVPNやPuppetがあります。また、開発やステージング環境にもプライベートCAが発行した証明書を使用して、TLSで接続を暗号化する本番サーバーと一致させるために、ウェブサーバーの設定を行うこともできます。

このガイドでは、Debian 11 サーバー上にプライベート証明機関を設定し、新しい CA を使用してテスト証明書を生成および署名します。また、CA サーバーの公開証明書をオペレーティングシステムの証明書ストアにインポートして、CA とリモートサーバーやユーザー間の信頼の鎖を検証できるようにします。最後に、証明書を取り消し、証明書失効リスト(CRL)を配布することで、CA に依存するサービスを使用できるのは許可されたユーザーやシステムのみであることを確認します。

前提条件

このチュートリアルを完了するためには、以下が必要です:

  • A Debian 11 server to be your dedicated CA server. It will only be used to import, sign, and revoke certificate requests. Do not use a pre-existing server that hosts public services. Ideally, your CA server should be shut down or offline when not in use so that its private key is not so vulnerable to compromise.
  • A non-root user with sudo privileges. Follow our Debian 11 Initial Server Setup guide to set that up. The linked tutorial will also set up a firewall, which is assumed to be in place throughout this guide.

Note

注意:このチュートリアルの最後のセクションは、証明書の署名と取り消しについて学びたい場合にのみ必要です。それらの練習手順を完了する場合は、別のDebian 11サーバーが必要です。または、DebianやUbuntu、またはこれらの派生ディストリビューションを実行するローカルのLinuxコンピューターを使用することもできます。

ステップ1:Easy-RSAのインストール

このチュートリアルの最初のタスクは、CAサーバーに簡単なRSAユーティリティをインストールすることです。Easy-RSAは、プライベートキーやパブリックルート証明書を生成するために使用する、証明書機関の管理ツールです。これらの証明書は、CAに依存するクライアントやサーバーのリクエストに署名するために使用されます。

初期設定手順中に作成した非ルートのsudoユーザーとしてCAサーバーにログインし、以下のコマンドを実行してください。

  1. sudo apt update
  2. sudo apt install easy-rsa

 

パッケージのダウンロードとインストールが促されます。パッケージをインストールすることを確認するために、yキーを押してください。

この時点で、必要な設定が完了し、Easy-RSAを使用できる状態になっています。次のステップでは、公開鍵インフラストラクチャを作成し、証明書機関の構築を開始します。

ステップ2 – 公開鍵インフラストラクチャディレクトリの準備

インストールが完了したeasy-rsaを使用して、CAサーバ上にスケルトン公開鍵基盤(PKI)を作成する時がきました。非ルートユーザとしてログインしたまま、easy-rsaディレクトリを作成してください。通常のユーザは特権を持たずにCAを管理および操作するため、以下のコマンドを実行する際にsudoを使用しないように注意してください。

  1. mkdir ~/easy-rsa

 

これにより、ホームフォルダに「easy-rsa」という新しいディレクトリが作成されます。このディレクトリを使用して、前の手順でインストールしたeasy-rsaパッケージファイルに対するシンボリックリンクを作成します。これらのファイルはCAサーバーの「/usr/share/easy-rsa」フォルダにあります。

lnコマンドを使用してシンボリックリンクを作成してください。

  1. ln -s /usr/share/easy-rsa/* ~/easy-rsa/

 

Note

注意:他のガイドでは、easy-rsaパッケージファイルをPKIディレクトリにコピーするよう指示しているかもしれませんが、このチュートリアルではシンボリックリンクのアプローチを採用しています。その結果、easy-rsaパッケージの更新は自動的にあなたのPKIのスクリプトに反映されます。

新しいPKIディレクトリへのアクセスを制限するために、所有者のみがchmodコマンドを使用してアクセスできるようにしてください。

  1. chmod 700 /home/sammy/easy-rsa

 

最後に、easy-rsaディレクトリ内でPKIを初期化します。

  1. cd ~/easy-rsa
  2. ./easyrsa init-pki

 

Output

init-pki complete; you may now create a CA or requests. Your newly created PKI dir is: /home/sammy/easy-rsa/pki

このセクションを完了すると、証明書発行局を作成するために必要なすべてのファイルが含まれたディレクトリが生成されます。次のセクションでは、CA用の秘密鍵と公開証明書を作成します。

ステップ3- 認証局の作成

CAの秘密鍵と証明書を作成する前に、varsというファイルをデフォルトの値で作成して準備する必要があります。まず、easy-rsaディレクトリに移動し、nanoやお好みのテキストエディタを使用してvarsファイルを作成・編集します。

  1. cd ~/easy-rsa
  2. nano vars

 

ファイルを開いたら、以下の行を貼り付け、各ハイライトされた値を自分の組織の情報に編集してください。重要なのは、値のいずれかを空白にしないようにすることです。

~/easy-rsa/vars

set_var EASYRSA_REQ_COUNTRY “US” set_var EASYRSA_REQ_PROVINCE “NewYork” set_var EASYRSA_REQ_CITY “New York City” set_var EASYRSA_REQ_ORG “Silicon Cloud” set_var EASYRSA_REQ_EMAIL “admin@example.com” set_var EASYRSA_REQ_OU “Community” set_var EASYRSA_ALGO “ec” set_var EASYRSA_DIGEST “sha512”

作業が終了したら、ファイルを保存して閉じてください。nanoを使用している場合は、CTRL+Xを押してから、YとENTERを押して確認して保存できます。これでCAの構築に進む準備が整いました。

証明機関のルート公開鍵と秘密鍵ペアを作成するには、./easy-rsaコマンドを再度実行し、今度はbuild-caオプションを使用してください。

  1. ./easyrsa build-ca

 

出力には、OpenSSLのバージョンに関するいくつかの行が表示され、鍵ペアのパスフレーズの入力を求められます。強力なパスフレーズを選び、どこか安全な場所にメモしてください。たとえば証明書の署名や取り消しをする際には、いつでもCAとの対話にパスフレーズを入力する必要がありますのでご注意ください。

あなたは、CA(証明書機関)の共通名(CN)を確認するようにも求められます。CNは、証明書機関の文脈でこのマシンを参照するために使用される名前です。CAの共通名には任意の文字列を入力できますが、簡単のためにデフォルトの名前を受け入れるためにENTERを押してください。

Output

. . . Enter New CA Key Passphrase: Re-Enter New CA Key Passphrase: . . . Common Name (eg: your user, host, or server name) [Easy-RSA CA]: CA creation complete and you may now import and sign cert requests. Your new CA certificate file for publishing is at: /home/sammy/easy-rsa/pki/ca.crt

Note

注意:CAとのやり取りごとにパスワードの入力を求められたくない場合は、nopassオプションを付けてbuild-caコマンドを実行することができます。以下のように入力してください:
./easyrsa build-ca nopass

現在、あなたは重要な2つのファイルを持っています。~/easy-rsa/pki/ca.crt と ~/easy-rsa/pki/private/ca.keyです。これらは証明書認証局の公開および秘密の要素を構成しています。

  • ca.crt is the CA’s public certificate file. Users, servers, and clients will use this certificate to verify that they are part of the same web of trust. Every user and server that uses your CA will need to have a copy of this file. All parties will rely on the public certificate to ensure that someone is not impersonating a system and performing a Man-in-the-middle attack.
  • ca.key is the private key that the CA uses to sign certificates for servers and clients. If an attacker gains access to your CA and, in turn, your ca.key file, you will need to destroy your CA. This is why your ca.key file should only be on your CA machine and why, ideally, your CA machine should be kept offline when not signing certificate requests as an extra security measure.

それによって、CAが設置され、証明書のリクエストを署名し、証明書を取り消す準備が整いました。

ステップ4 ― あなたの証明機関の公開証明書の配布

CAが設定され、それを使用するように構成したいシステムの信頼基盤として準備が整いました。 CAの証明書をOpenVPNサーバー、Webサーバー、メールサーバーなどに追加できます。ネットワーク内の他のユーザーやサーバーの身元を検証する必要がある場合、そのユーザーやサーバーは、ca.crtファイルを自身のオペレーティングシステムの証明書ストアにインポートする必要があります。

CAの公開証明書を、別のLinuxシステム(別のサーバーまたはローカルコンピューター)にインポートするには、まずCAサーバーからca.crtファイルのコピーを取得します。ターミナルでcatコマンドを使用して出力し、その後、証明書をインポートする2番目のコンピューター上のファイルにコピーして貼り付けます。ファイルをシステム間で転送するためにscpやrsyncのようなツールを使用することもできます。この手順では、全てのシステムで動作するためにnanoを使用したコピー&ペーストを行います。

CAサーバー上での非ルートユーザーとして、以下のコマンドを実行してください。

  1. cat ~/easy-rsa/pki/ca.crt

 

以下は、あなたの端末に次のような出力が表示されます。

Output

—–BEGIN CERTIFICATE—– MIIDSzCCAjOgAwIBAgIUcR9Crsv3FBEujrPZnZnU4nSb5TMwDQYJKoZIhvcNAQEL BQAwFjEUMBIGA1UEAwwLRWFzeS1SU0EgQ0EwHhcNMjAwMzE4MDMxNjI2WhcNMzAw . . . . . . —–END CERTIFICATE—–

すべてをコピーしてください。—–BEGIN CERTIFICATE—–から—–END CERTIFICATE—–の行とダッシュも含めてください。

あなたの2番目のLinuxシステムで、nanoまたは好きなテキストエディターを使用して、/tmp/ca.crtという名前のファイルを開いてください。

  1. nano /tmp/ca.crt

 

CAサーバからコピーした内容をエディタに貼り付けてください。作業が終わったら、ファイルを保存して閉じてください。nanoを使用している場合は、CTRL+Xを押し、その後YとENTERを押して確認して保存してください。

現在、第2のLinuxシステムにca.crtファイルのコピーがあるので、その証明書をオペレーティングシステムの証明書ストアにインポートする時が来ました。

DebianおよびUbuntuベースのシステムでは、以下のコマンドを実行して証明書をインポートしてください。

デビアンとウブンテュ派生ディストリビューション
  1. sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
  2. sudo update-ca-certificates

 

以下の文を日本語で表現しましょう(一つのオプションのみ必要です):
後のDebianおよびUbuntuシステムでは、/usr/sbin/update-ca-certificatesに位置するupdate-ca-certificatesスクリプトは、ユーザーの$PATHに存在しない場合があります。$PATHに/usr/sbinを追加するか、単に/usr/sbin/update-ca-certificatesを実行してください。

CentOS、Fedora、またはRedHatベースのシステムにCAサーバーの証明書をインポートするには、前の例と同様にファイル内容を/tmp/ca.crtという名前のファイルにコピー&ペーストします。次に、証明書を/etc/pki/ca-trust/source/anchors/にコピーし、update-ca-trustコマンドを実行します。

CentOS、Fedora、RedHatのディストリビューション
  1. sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
  2. sudo update-ca-trust

 

あなたの2番目のLinuxシステムは、CAサーバーによって署名された証明書を信頼するようになります。

Note

注意:WebサーバーでCAを使用し、ブラウザとしてFirefoxを使用している場合、ca.crt公開証明書を直接Firefoxにインポートする必要があります。Firefoxはローカルのオペレーティングシステムの証明書ストアを使用しません。CAの証明書をFirefoxに追加する方法の詳細については、Mozillaのサポート記事「Firefoxでの証明機関(CA)の設定」をご覧ください。
Windows環境やデスクトップコンピューターとの統合にCAを使用している場合は、certutil.exeを使用してCA証明書をインストールする方法に関するドキュメントをご覧ください。

もし、このチュートリアルを別のチュートリアルの前提条件として使用している場合や、証明書の署名と取り消しの方法について既に知っている場合は、ここで終了してください。証明書の署名と取り消しの方法についてさらに学びたい場合は、以下のオプションセクションでそれぞれのプロセスを詳しく説明します。

ステップ5 — 証明書署名要求と証明書の取り消しの作成(任意)

次のセクションはオプションです。これまでの手順をすべて完了した場合、完全に設定された動作する証明書発行局(Certificate Authority)が得られます。この証明書発行局は他のチュートリアルの前提条件として使用できます。CAのca.crtファイルをインポートし、ネットワーク上でCAによって署名された証明書を検証することができます。

もし証明書のリクエストの署名や証明書の取り消しについて練習したり学びたい場合は、これらのオプションのセクションによって、両方のプロセスがどのように動作するかが説明されます。

ステップ6 — 練習証明書の作成と署名(オプション)

CAを使用できるようになったので、署名と配布のプロセスに慣れるために、秘密鍵と証明書リクエストの生成の練習をすることができます。

証明書署名要求(CSR)は、公開鍵と要求システムの識別情報、そして要求自体の署名から成り立ちます。この署名は、要求者の秘密鍵を使用して作成されます。秘密鍵は秘密に保持され、署名付きの公開証明書を持つ者が情報を復号化できるように、情報の暗号化に使用されます。

以下の手順は、Debian、Ubuntu、またはそれらの派生ディストリビューションを実行しているセカンドのLinuxシステム上で実行されます。また、リモートサーバーまたはラップトップやデスクトップのようなローカルなLinuxマシンでも構いません。easy-rsaはすべてのシステムでデフォルトで利用できないため、opensslツールを使用して練習用の秘密鍵と証明書を作成します。

ほとんどのLinuxディストリビューションには、通常opensslがデフォルトでインストールされていますが、確認のために以下のコマンドをシステムで実行してください。

  1. sudo apt update
  2. sudo apt install openssl

 

OpenSSLのインストールを促されたら、インストール手順を継続するために「y」を押してください。これにより、OpenSSLライブラリがアップグレードされ、古いバージョンを使用している一部のサービスの再起動が求められる場合があります。再起動してもよければ、「OK」を選択してこれらのサービスを再起動してください。

あなたは今、opensslを使用して練習用のCSRを作成する準備が整いました。

CSRを作成するために必要な最初の手順は、プライベートキーを生成することです。opensslを使用してプライベートキーを作成するには、practice-csrディレクトリを作成し、その中にキーを生成します。この要求は、ユーザーまたは別のCAを識別するために使用される証明書を作成するのではなく、架空のサーバーであるsammy-serverのために行います。

  1. mkdir ~/practice-csr
  2. cd ~/practice-csr
  3. openssl genrsa -out sammy-server.key

 

Output

Generating RSA private key, 2048 bit long modulus (2 primes) . . . . . . e is 65537 (0x010001)

プライベートキーを持っているので、opensslユーティリティを使用して対応するCSRを作成することができます。国、州、都市などの多くのフィールドに入力を求められます。.を入力すればフィールドを空白のままにすることもできますが、実際のCSRの場合は、所在地と組織の正しい値を使用することが最善ですので注意してください。ただし、Common Name(CN)は必須フィールドですので、空白にはできません。CNを空白にした場合、CAは証明書に署名できなくなります。

  1. openssl req -new -key sammy-server.key -out sammy-server.req

 

Output

. . . —– Country Name (2 letter code) [XX]:US State or Province Name (full name) []:New York Locality Name (eg, city) [Default City]:New York City Organization Name (eg, company) [Default Company Ltd]:Silicon Cloud Organizational Unit Name (eg, section) []:Community Common Name (eg, your name or your server’s hostname) []:sammy-server Email Address []: Please enter the following ‘extra’ attributes to be sent with your certificate request A challenge password []: An optional company name []:

opensslの対話型プロンプトではなく、これらの値を自動的にopensslの呼び出しの一部として追加したい場合は、-subj引数を使用することができます。練習場所、組織、およびサーバー名に合わせて、ハイライトされた値を編集してください。

  1. openssl req -new -key sammy-server.key -out server.req -subj \
  2. /C=US/ST=New\ York/L=New\ York\ City/O=Silicon Cloud/OU=Community/CN=sammy-server

 

CSRの内容を確認するには、opensslでリクエストファイルを読み込み、内部のフィールドを調べることができます。

  1. openssl req -in sammy-server.req -noout -subject

 

Output

subject=C = US, ST = New York, L = New York City, O = Silicon Cloud, OU = Community, CN = sammy-server

練習証明書の申請の対象に満足したら、scpを使用してsammy-server.reqファイルをCAサーバーにコピーしてください。

  1. scp sammy-server.req sammy@your_ca_server_ip:/tmp/sammy-server.req

 

このステップでは、架空のサーバーである「sammy-server」のための証明書署名リクエストを生成しました。実際のシナリオでは、テストのためにTLS証明書が必要なステージングや開発ウェブサーバーからのリクエストであるか、VPNへのユーザー接続を可能にするために証明書をリクエストしているOpenVPNサーバーからのリクエストであるかもしれません。次のステップでは、CAサーバーの秘密鍵を使用して証明書署名リクエストを署名します。

ステップ7 – CSRの署名(任意)

前のステップで、架空のサーバーのために練習用の証明書リクエストとキーを作成しました。実際のクライアントやサーバーから署名が必要なCSRリクエストを受け取る場合に使用する手順を模倣して、それをCAサーバーの/tmpディレクトリにコピーしました。

架空のシナリオを続けると、今度はCAサーバーが練習用の証明書をインポートし、署名する必要があります。証明書リクエストがCAによって検証され、サーバーに中継された後、証明書認証局を信頼しているクライアントは新しく発行された証明書を信頼することができるようになります。

前の例のようにopensslを直接使用する代わりに、利用可能なeasy-rsaユーティリティを使用して署名手続きを容易にするために、CAのPKI内で操作する予定です。

架空のCSRに署名するための最初のステップは、easy-rsaスクリプトを使って証明書リクエストをインポートすることです。

  1. cd ~/easy-rsa
  2. ./easyrsa import-req /tmp/sammy-server.req sammy-server

 

Output

. . . The request has been successfully imported with a short name of: sammy-server You may now use this name to perform signing operations on this request.

今では、簡単なeasyrsaスクリプトを実行し、sign-reqオプションを使用してリクエストに署名することができます。リクエストタイプとCSRに含まれる共通名を指定する必要があります。リクエストタイプは、client、server、またはcaのいずれかを選択できます。ここでは架空のサーバーの証明書を作成しているため、必ずサーバーリクエストタイプを使用してください。

  1. ./easyrsa sign-req server sammy-server

 

出力されたもので信頼できる情報源からの要求かどうかを確認するように求められます。確認するためには「はい」と入力し、その後ENTERキーを押してください。

Output

You are about to sign the following certificate. Please check over the details shown below for accuracy. Note that this request has not been cryptographically verified. Please be sure it came from a trusted source or that you have verified the request checksum with the sender. Request subject, to be signed as a server certificate for 3650 days: subject= commonName = sammy-server Type the word ‘yes’ to continue, or any other input to abort. Confirm request details: yes . . . Certificate created at: /home/sammy/easy-rsa/pki/issued/sammy-server.crt

もしCAキーを暗号化していた場合、この時点でパスワードの入力が求められます。

それらのステップが完了したら、/home/sammy/easy-rsa/pki/private/ca.keyにあるCAサーバーの秘密鍵を使用して、sammy-server.req CSRに署名しました。結果として得られたsammy-server.crtファイルには、練習サーバーの公開鍵とCAサーバーからの新しい署名が含まれています。署名の目的は、CAを信頼する人々に、sammy-server証明書も信頼できると伝えることです。

もしこの要求が、ウェブサーバーやVPNサーバーのような実際のサーバーに関するものであれば、CAサーバーの最後のステップは、CSR要求を行ったリモートサーバーに新しいsammy-server.crtとca.crtのファイルをCAサーバーから配布することです。

  1. scp pki/issued/sammy-server.crt sammy@your_server_ip:/tmp
  2. scp pki/ca.crt sammy@your_server_ip:/tmp

 

この時点では、発行された証明書をウェブサーバーやVPN、設定管理ツール、データベースシステム、またはクライアント認証の目的に使用することができます。

ステップ8 – 証明書の取り消し(オプション)

時折、ユーザーまたはサーバーからの使用を防ぐために証明書を無効化する必要が生じることがあります。例えば、誰かのノートパソコンが盗まれた、ウェブサーバーが侵害された、または組織を辞めた従業員や契約者がいた場合です。

証明書を取り消すためには、一般的な手順に従います。

    1. 「./easyrsa revoke client_name」のコマンドで証明書を取り消します。

 

    1. 「./easyrsa gen-crl」のコマンドで新しいCRL(証明書失効リスト)を生成します。

 

    1. CAに依存するサーバーまたはサーバーに更新されたcrl.pemファイルを転送し、それらのシステムでそれを参照するプログラムの必要なディレクトリにコピーします。

 

    CAおよびCRLファイルを使用するサービスを再起動します。

この手順を使用すると、以前に発行したすべての証明書をいつでも取り消すことができます。以下のセクションで、revokeコマンドから始め、各ステップを詳細に説明します。

証明書を取り消す

証明書を取り消すには、CAサーバーのeasy-rsaディレクトリに移動してください。

  1. cd ~/easy-rsa

 

次に、revokeオプションを使用してeasyrsaスクリプトを実行し、取り消したいクライアントの名前を入力します。前述の実践例と同様に、証明書のCommon Nameは「sammy-server」です。

  1. ./easyrsa revoke sammy-server

 

「はい」と入力することで、取り消しの確認が求められます。

Output

Please confirm you wish to revoke the certificate with the following subject: subject= commonName = sammy-server Type the word ‘yes’ to continue, or any other input to abort. Continue with revocation: yes . . . Revoking Certificate 8348B3F146A765581946040D5C4D590A . . .

「証明書の無効化」の行にハイライトされた値に注意してください。この値は、無効化されている証明書の一意のシリアル番号です。このセクションの最後のステップで無効化リストを確認して、証明書が含まれているかどうかを検証したい場合は、この値が必要です。

動作を確認した後、CAは証明書を無効化します。ただし、CAに依存しているリモートシステムは、いかなる証明書が無効化されたかを確認する手段を持っていません。ユーザーやサーバーは、CAに依存しているすべてのシステムに証明書失効リスト(CRL)が配布されるまで、引き続き証明書を使用することができます。

次のステップでは、CRLを生成したり、既存のcrl.pemファイルを更新します。

証明書失効リストを生成する

証明書の取り消しを行ったので、CAサーバー上の取り消し済み証明書のリストを更新することが重要です。更新された取り消しリストがあれば、CAにおいて有効な証明書を持つユーザーやシステムを確認することができます。

「CRLを生成するには、~/easy-rsaディレクトリ内でeasy-rsaコマンドをgen-crlオプションとともに実行してください。」

  1. ./easyrsa gen-crl

 

もしca.keyファイルを作成する際にパスフレーズを使用した場合、入力が求められます。gen-crlコマンドは、そのCAの失効した証明書の更新されたリストが含まれるcrl.pemというファイルを生成します。

次に、gen-crlコマンドを実行するたびに、このCAに依存するすべてのサーバーとクライアントに更新されたcrl.pemファイルを転送する必要があります。そうしないと、証明書の失効状態について知らないため、クライアントやシステムはまだこのCAを使用するサービスやシステムにアクセスできます。

証明書失効リストの転送

CAサーバーでCRLを生成したところ、CAに依存しているリモートシステムに転送する必要があります。このファイルをサーバーに転送するには、scpコマンドを使用することができます。

Note

注意:このチュートリアルでは、CRLを手動で生成および配布する方法について説明します。OCSP-Staplingのようなより堅牢で自動化されたリストの配布とチェック方法もありますが、これらの方法の設定はこの記事の範囲を超えています。

あなたの非ルートユーザーとしてCAサーバーにログインしていることを確認し、以下のコマンドを実行してください。your_server_ipの部分に自分のサーバーのIPアドレスまたはDNS名を入れてください。

  1. scp ~/easy-rsa/pki/crl.pem sammy@your_server_ip:/tmp

 

ファイルがリモートシステムに保存されたので、最後のステップは新しい失効リストのコピーでサービスを更新することです。

CRLをサポートするサービスの更新

このチュートリアルの範囲を超えるため、crl.pemファイルを使用するサービスを更新するための手順のリストアップは行われていません。一般的には、サービスが期待する場所にcrl.pemファイルをコピーし、それをsystemctlを使用して再起動する必要があります。

新しいcrl.pemファイルを使用してサービスを更新すると、接続のあるクライアントやサーバーが取り消された証明書を使用している場合に、サービスが接続を拒否することができます。

CRLの内容を調査し、検証する。

例えば、取り消された証明書のリストを確認するためにCRLファイルを調査したい場合は、CAサーバーのeasy-rsaディレクトリ内から以下のOpenSSLコマンドを使用してください。

  1. cd ~/easy-rsa
  2. openssl crl -in pki/crl.pem -noout -text

 

opensslツールがインストールされているサーバーやシステムに、crl.pemファイルのコピーを持っている場合には、このコマンドを実行することもできます。例えば、crl.pemファイルを第二のシステムに転送し、サミー・サーバーの証明書がリボークされていることを確認したい場合、以下のようなopensslコマンドを使用できます。以前に証明書をリボークした際にメモしたシリアル番号を、ここでハイライトされている番号の代わりに置き換えてください。

  1. openssl crl -in /tmp/crl.pem -noout -text |grep -A 1 8348B3F146A765581946040D5C4D590A

 

Output

Serial Number: 8348B3F146A765581946040D5C4D590A Revocation Date: Apr 1 20:48:02 2020 GMT

注意してください、grepコマンドが使用されていることに気づいてください。それは、リボケーション手順でメモした一意のシリアル番号をチェックするために使用されます。これにより、ユーザーやサービスへのアクセスを制限するためにそれに依存するどのシステムでも、証明書失効リストの内容を検証できます。

結論として

このチュートリアルでは、独立したDebian 11サーバー上でEasy-RSAパッケージを使用してプライベート認証局を作成しました。CAに依存する当事者間の信頼モデルの動作方法を学びました。また、練習サーバーのための証明書署名リクエスト(CSR)を作成し、署名しました。さらに、アクセスすべきでないユーザーやサーバーを防止するために、CAに依存するシステムに対して証明書失効リスト(CRL)を生成し、配布しました。

今では、OpenVPNなどのサービスでユーザーに対して証明書を発行し、利用することができます。また、開発やステージングのウェブサーバーにもCAを使用して証明書を設定し、非本番環境を保護することもできます。開発中にTLS証明書を使用することで、コードと環境が可能な限り本番環境に合致するようにすることができます。

もしお客様がOpenSSLの使い方についてもっと学びたいのであれば、当社の「OpenSSLエッセンシャル:SSL証明書、プライベートキー、CSRの取り扱い方法」チュートリアルには、OpenSSLの基礎についてより詳しい情報がたくさんありますので、より習熟するのに役立つでしょう。

コメントを残す 0

Your email address will not be published. Required fields are marked *