Tutorial

Ubuntu 20.04で認証局(CA)をセットアップおよび設定する方法

Published on November 12, 2020
日本語
Ubuntu 20.04で認証局(CA)をセットアップおよび設定する方法

はじめに

認証局(CA)は、インターネット上のIDをしデジタル証明書の発行をおこなう機関です。‏‏パブリックCAは、一般ユーザー向けのWebサイトやその他のサービスのIDを検証するのによく使われる一方、プライベートCAは通常、クローズドグループやプライベートサービスに使用されます。

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

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

このガイドでは、Ubuntu 20.04サーバーでプライベート認証局をセットアップする方法と、新しいCAを使用してテスト証明書を生成して署名する方法を学びます。また、CAとリモートサーバーあるいはユーザー間で信頼の連鎖を確認できるように、CAサーバーの公開証明書をオペレーティングシステムの証明書ストアにインポートする方法についても学習します。最後に、証明書を失効させ、証明書失効リストを配布し、許可されたユーザーとシステムのみがCAに依存するサービスを使用できるようにする方法を学習します。

前提条件

このチュートリアルを完了するには、CAサーバーをホストするためにUbuntu 20.04サーバーにアクセスできる必要があります。このガイドを開始する前に、sudo権限を持つ ルート 以外のユーザーを設定する必要があります。Ubuntu 20.04の初期サーバーセットアップガイドに従って、適切な権限を持つユーザーをセットアップできます。リンク先のチュートリアルでは、ファイアウォールも設定します。このガイドではファイアウォールがすでにで設置されていると想定します。

このチュートリアルではこのサーバーをCAサーバーと呼ぶことにします。

CAサーバーがスタンドアロンシステムであることを確認します。これは、証明書要求のインポート、署名、および取り消しにのみ使用されます。他のサービスを実行しないでください。CAを積極的に使用していないときは、オフラインにするか、完全にシャットダウンするのが理想的です。

**注:**このチュートリアルの最後のセクションは、証明書の署名と取り消しについて学習したい場合はオプションです。これらの練習手順を完了することを選択した場合は、2番目のUbuntu 20.04サーバーが必要です。または、UbuntuまたはDebianを実行している独自のローカルLinuxコンピューター、またはこれらのいずれかから派生したディストリビューションを使用することもできます。

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

このチュートリアルの最初のタスクは、CAサーバーにeasy-rsa一連のスクリプトをインストールすることです。easy-rsaは、秘密鍵と公開ルート証明書を生成するために使用する認証局管理ツールであり、CAに依存するクライアントおよびサーバーからの要求に署名するために使用します。

初期セットアップ手順で作成したルート以外の sudoユーザーとしてCA サーバーにログインし、以下を実行します。

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

パッケージをダウンロードしてインストールするように求められます。 yを押して、パッケージをインストールすることを確認します。

これで、Easy-RSAを使用するために必要なすべての設定と準備が整いました。 次のステップでは、公開鍵インフラストラクチャを作成してから、認証局の構築を開始します。

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

easy-rsaをインストールしたので、CAサーバーにスケルトン公開鍵インフラストラクチャ(PKI)を作成します。root以外のユーザーとしてログインしていることを確認し、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/

注: 他のガイドでは、easyrsaパッケージファイルを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ディレクトリにcdをおこない、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 "DigitalOcean" 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+XYEnterを押して確認できます。CAを構築する準備が整いました。

認証局のルート公開鍵と秘密鍵のペアを作成するには、今回は、build-caオプションで、./ easy-rsaコマンドを再度、実行します。

  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

**注:**CAとやりとりするたびにパスワードの入力を求められたくない場合は、次のようにnopassオプションでbuild-caコマンドを実行できます。

  1. ./easyrsa build-ca nopass

これで、次の2つの重要なファイルができました — ~/easy-rsa/pki/ca.crt~/easy-rsa/pki/private/ca.key — これは、認証局のパブリックコンポーネントとプライベートコンポーネントを構成します。

  • ca.crtは、CAの公開証明書ファイルです。ユーザー、サーバー、クライアントは、この証明書を使用して、同じ信頼のWebの一部であることを確認します。CAを使用したすべてのユーザーとサーバーは、このファイルのコピーが必要です。すべての関係者は、誰かがシステムになりすまして中間者攻撃を実行していないことを確認するために、公開証明書に依存します。

  • ca.keyは、CAがサーバーとクライアントの証明書に署名するために使用する秘密鍵です。攻撃者がCAにアクセスし、次にca.keyファイルにアクセスした場合は、CAを破棄する必要があります。これが、ca.keyファイルがCAマシン上にのみ存在する必要がある理由であり、理想的には、追加のセキュリティ対策として証明書要求に署名しない場合は、CAマシンをオフラインに保つ必要があります。

これで、CAが設置され、証明書要求に署名したり、証明書を失効させたりするために使用できるようになります。

ステップ4 — 認証局の公開証明書を配布します。

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

CAの公開証明書を別のサーバーやローカルコンピューターなどの2番目のLinuxシステムにインポートするには、最初にCAサーバーからca.crtファイルのコピーを入手します。catコマンドを使用して端末に出力し、証明書をインポートしている2台目のコンピューター上のファイルにコピーして貼り付けることができます。scprsyncなどのツールを使用して、システム間でファイルを転送することもできます。ただし、すべてのシステムで動作するため、このステップでは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+XYENTERを押して確認できます。

2番目のLinuxシステムにca.crtファイルのコピーができたので、次に、オペレーティングシステムの証明書ストアに証明書をインポートします。

UbuntuおよびDebianベースのシステムでは、ルート以外のユーザーとして次のコマンドを実行して、証明書をインポートします。

Ubuntu and Debian derived distributions
  1. sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
  2. sudo update-ca-certificates

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

CentOS, Fedora, RedHat distributions
  1. sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
  2. sudo update-ca-trust

これで、2番目のLinuxシステムは、CAサーバーによって署名されたすべての証明書を信頼します。

**注: **CAをWebサーバーで使用していて、Firefoxをブラウザーとして使用している場合は、公開ca.crt証明書をFirefoxに直接インポートする必要があります。Firefoxは、ローカルオペレーティングシステムの証明書ストアを使用しません。CAの証明書をFirefoxに追加する方法については、Firefoxでの認証局(CA)の設定に関するMozillaのサポート記事を参照してください。

CAによってWindows環境またはデスクトップコンピューターと統合している場合は、certutil.exeを使用してCA証明書をインストールする方法に関するドキュメントを参照してください。

このチュートリアルを別のチュートリアルの前提条件として使用している場合、または証明書に署名して取り消す方法をすでに理解してる場合は、ここで終了できます。証明書に署名して取り消す方法について学びたい場合は、次のオプションセクションで各プロセスについて詳しく説明します。

(オプション) — 証明書署名要求の作成と証明書の取り消し

チュートリアルの以下のセクションはオプションです。これまでの手順をすべて完了していれば、他のチュートリアルの前提条件として使用できる完全に設定された認証局が完成しています。CAのca.crtファイルをインポートして、CAによって署名されたネットワーク内の証明書を確認できます。

このオプションのセクションでは、さらに証明書要求に署名する方法さらに証明書を取り消す方法について練習することができます。

(オプション) — 練習用の証明書要求の作成と署名

CAを使用する準備ができたので、秘密鍵と証明書要求の生成を練習して、署名と配布のプロセスを理解できます。

証明書署名要求(CSR)は、公開鍵、要求システムに関する識別情報、委託者の秘密鍵を使用して作成される要求自体の署名の3つの部分で構成されます。秘密鍵は秘匿化されて、署名された公開証明書を持っている人なら誰でも解読できる情報を暗号化するために使用されます。

次の手順は、2番目のUbuntuまたはDebianシステム、あるいはそれらのいずれかから派生したディストリビューションで実行されます。別のリモートサーバー、またはラップトップやデスクトップコンピューターなどのローカルLinuxマシンであっても構いません。easy-rsaはデフォルトですべてのシステムで使用できるわけではないため、opensslツールを使用して練習用の秘密鍵と証明書を作成します。

opensslは通常、ほとんどのLinuxディストリビューションにデフォルトでインストールされますが、念のため、システムで次を実行します。

  1. sudo apt update
  2. sudo apt install openssl

opensslをインストールするように求められたらyを入力して、インストールを続行します。これで、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である場合は、場所と組織に正しい値を使用するのが最善です。

  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]:DigitalOcean 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呼び出しの一部としてこれらの値を自動的に追加する場合は、-subj引数をOpenSSLに渡すことができます。強調表示された値は、練習場所、組織、サーバー名に一致するように編集してください。

  1. openssl req -new -key sammy-server.key -out server.req -subj \
  2. /C=US/ST=New\ York/L=New\ York\ City/O=DigitalOcean/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 = DigitalOcean, 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 証明書を必要とするステージングや開発用の Web サーバーのようなものからの要求になる可能性があります。または、ユーザーがVPNに接続できるように証明書を要求しているOpenVPNサーバーから来る可能性があります。次のステップでは、CAサーバーの秘密鍵を使用して証明書署名要求に署名するように進みます。

(オプション) — CSRへの署名

前の手順では、架空のサーバーの練習用証明書要求とキーを作成しました。これをCAサーバーの/ tmpディレクトリにコピーし、署名が必要なCSR要求を送信する実際のクライアントまたはサーバーがある場合に使用するプロセスをエミュレートしました。

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

easy-rsaユーティリティが利用可能なCAのPKI内で動作するため、署名手順では、前の例で行ったように、opensslを直接使用するのではなく、easy-rsaユーティリティを使用して、作業を簡単にします。

架空の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.

これで、sign-reqオプションを指定してeasyrsaスクリプトを実行し、その後にリクエストタイプとCSRに含まれる共通名を続け要求に署名できます。リクエストタイプは、クライアントサーバーcaのいずれかになります。架空のサーバーの証明書を使用して練習しているため、必ずサーバーリクエストタイプを使用してください。

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

出力では、要求が信頼できるソースからのものであることを確認するように求められます。yesと入力し、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.reqCSRに署名しました。結果として生じるsammy-server.crtファイルには、練習用サーバーの公開暗号化キーと、CAサーバーからの新しい署名が含まれます。署名のポイントは、CAを信頼する人に、sammy-server証明書も信頼できると伝えることです。

この要求がWebサーバーやVPNサーバーなどのリアルサーバーに対するものである場合、CAサーバーでの最後のステップは、新しいsammy-server.crtファイルとca.crtファイルを、CAサーバーからCSR要求したリモートサーバーに配布することです。

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

この時点で、発行済み証明書をWebサーバー、VPN、構成管理ツール、データベースシステムなどで使用したり、クライアント認証の目的で使用したりできるようになります。

(オプション)— 証明の取り消し

場合によっては、ユーザーまたはサーバーが証明書を使用できないようにするために、証明書を取り消す必要があります。ラップトップの盗難、Webサーバーの侵害、従業員または請負業者の退職といったケースが考えられます。

証明書を取り消すための一般的なプロセスは次の手順に従ってください。

  1. ./easyrsa revoke client_nameコマンドで証明書を取り消します。
  2. ./easyrsa gen-crlコマンドで新しいCRLを生成します。
  3. 更新されたcrl.pemファイルをCAに依存するサーバーに転送し、それらのシステムで、それを参照するプログラムに必要なディレクトリにコピーします。
  4. CAとCRLファイルを使用するサービスを再起動します。

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

証明書の取り消し

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

  1. cd ~/easy-rsa

次に、revokeオプションを指定してeasyrsaスクリプトを実行し、その後に取り消したいクライアント名が続きます。上記の練習例では、証明書の共通名はsammy-serverです。

  1. ./easyrsa revoke sammy-server

続いて、yesと入力して取り消しを確認するように求められます。

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 . . .

Revoking Certificate行で強調表示されている値に注意してください。この値は、取り消されている証明書の一意のシリアル番号です。このセクションの最後のステップで失効リストを調べて、証明書が含まれていることを確認する場合は、この値が必要になります。

アクションを確認した後、CAは証明書を取り消します。ただし、CAに依存するリモートシステムには、証明書が取り消されているかどうかを確認する方法がありません。ユーザーとサーバーは、CAの証明書失効リスト(CRL)がCAに依存するすべてのシステムに配布されるまで、引き続き証明書を使用できます。

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

証明書失効リストの生成

証明書を失効させたので、CAサーバー上の失効した証明書のリストを更新することが重要です。失効リストを更新すると、CAにどのユーザーとシステムが有効な証明書を持っているか分かります。

CRLを生成するには、~/ easy-rsaディレクトリ内で、gen-crlオプションを指定してeasy-rsaコマンドを実行します。

  1. ./easyrsa gen-crl

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

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

証明書失効リストの転送

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

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

root以外のユーザーとして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

このコマンドは、crl.pemファイルのコピーを使用してopensslツールがインストールされている任意のサーバーまたはシステムで実行することもできます。たとえば、2番目のシステムにcrl.pemファイルを転送し、sammy-server証明書が取り消されていることを確認したい場合は、次のような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コマンドがどのように使用されているのかに注意してください。これで、ユーザーとサービスへのアクセスを制限するために、証明書失効リストに依存するシステム上の証明書失効リストの内容を確認できます。

まとめ

このチュートリアルでは、スタンドアロンのUbuntu20.04サーバーでEasy-RSAパッケージを使用してプライベート認証局を作成しました。CAに依存する当事者間で信頼モデルがどのように機能するかを学びました。また、練習用サーバーの証明書署名要求(CSR)を作成して署名し、証明書を取り消す方法を学習しました。最後に、サービスにアクセスしてはならないユーザーまたはサーバーが、サービスにアクセスできないようにするために、CAに依存するシステムの証明書失効リスト(CRL)を生成し配布する方法を学びました。

これで、ユーザーに証明書を発行して、OpenVPNのようなサービスで使用できます。また、CA を使用して、証明書で開発およびステージング Web サーバーを設定し、非実稼働環境を保護することもできます。開発中に TLS 証明書とCAを使用すると、コードと環境は本番環境を可能な限り一致させることができます。

OpenSSLの使用方法について詳しく知りたい場合は、OpenSSL Essentials(SSL証明書、秘密鍵、およびCSRの使用)のチュートリアルに、OpenSSLの基本を理解するのに役立つ多くの追加情報があります。

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel