Let’s Encrypt SSL認証局とPAM360との連携

Let’s Encryptは、インターネットセキュリティ研究グループ(Internet Security Research Group( ISRG))により開発された無料の自動化された公開認証局で、HTTPS接続の確立に伴う複雑さを軽減し、および証明書のインストールプロセス全体をスムーズにすることを主な目的としています。現在、Let’s Encryptはドメイン認証された証明書のみを発行しています。組織検証および拡張検証は、現時点では提供されていません、また、近い将来にも提供される予定はありません。Let’s Encrypt認証局についての詳細は、 こちらをクリックしてください。

PAM360は、周知のオープン認証局Let’s Encryptと連携することで、外部公開Webサイトのエンド・ツー・エンド証明書ライフサイクル管理を促します。これは、パブリックドメイン向けにLet’s Encryptからドメイン認証済みの証明書を調達し、有効期限時にアラートをデプロイ、追跡、要求、証明書を更新、すべてを全体的にPAM360インターフェイスから実行できるという意味です。

下の順を追った手続きにしたがって、Let’s EncryptをPAM360と連携します:

  1. Let’s Encryptアカウントの作成
  2. 証明書要求の発出
  3. DNSアカウントの設定
  4. チャレンジ検証によるドメイン検証
  5. 証明書の調達と保存
  6. Let’s Encryptにより発行された証明書の管理

メモ:

以下のベースURLとポートをファイアウォールまたはプロキシとして追加し、PAM360がLet’s EncryptのCAサービスに接続できるようにします。

1.Let’s Encryptアカウントの作成

Let’s Encrypt CAに証明書を要求する最初の手順は、Let’s Encryptを使用してアカウントを作成することです。これは、一回限りのプロセスで、PAM360インターフェイス自体から実行できます。Let’s Encryptアカウントを作成するには、次の手順に従います:

  1. [証明書] >> [Let’s Encrypt] >> [管理]の順に移動します。
  2. [アカウント]タブで、[新しく登録]をクリックします。
  3. 開いたUIで、アカウントの名前を入力し、有効な電子メールアドレスを指定します。要件に基づいて、本番環境またはステージング環境を選択します。
  4. [Let’s Encryptを承認 購読契約]チェックボックスを有効にして承諾し、 [登録]をクリックします。
  5. Let’s Encryptがあるアカウントが作成されます。

    メモ:

    この権限は、管理者権限があるユーザーのみ利用でき、Let’s Encryptアカウント1個のみをPAM360から作成できます。

    lets-encrypt-1

2.証明書要求の発出

Let’s Encryptでアカウントを作成した後、証明書要求を生成する必要があります。次に、ドメインを検証して証明書を発行するためにLet’s Encryptで実行する必要のある課題が表示されます。

  1. [証明書] >> [Let’s Encrypt] >> [証明書の要求]の順に移動します。
    lets-encrypt-2
  2. コモンネームを入力し、[Key Algorithm][Algorithm Length][Signature Algorithm][Keystore Type]を選択し、鍵ストアのパスワードを入力して、[作成]をクリックします。
  3. dns-01チャレンジタイプの場合、DNS認証情報がすでに構成済みであれば、DNSアカウントを選択および割り当てることができます。これは、要求で指定されたすべてのドメインの自動チャレンジ検証に使用されます。
  4. また、証明書が更新されるたびに秘密鍵を変更するオプションもあります。
    1. キーを変更する必要がある場合は、新しい鍵を使用してください。このオプションは、証明書が更新されるたびに新しい鍵を生成します。
    2. 更新時に同じ鍵を保持する場合は、[同じ鍵]オプションを使用します。
    3. 独自のキーを使用するには、 [鍵をインポート]オプションを使用します。このキーは、証明書が生成されたときに初めて使用され、その後の更新にも使用されます。 

3.DNSアカウントの設定

  1. [Let’s Encrypt] >> [管理]に移動します。
  2. [DNS]タブに切り替えます。
    lets-encrypt-3
  3. ここでは、サポートされているDNSプロバイダごとに最大1つのDNSアカウントを追加できます。PAM360は現在、Azure、Cloudflare、Amazon route 53、RFC2136 更新(nsupdate)、GoDaddy、ClouDNS、およびDNS Made Easyで自動チャレンジ認証をサポートしています。
  4. [追加]をクリックします。開いたポップアップで、DNSプロバイダを選択します。

3.1 Azure

  1. Azureゾーンの概要ページにあるサブスクリプションIDを入力します。
  2. [Microsoft Entra ID >>[Properties]で入手可能な ディレクトリIDを入力します。
    lets-encrypt-4
  3. 既存のAzureアプリケーションがある場合は、そのアプリケーションIDキーを入力します。そうでない場合は、以下の手順に従ってAzureアプリケーションとキーを作成し、API呼び出しを行うためのDNSゾーンへのアクセスをアプリケーションに許可します。
  4. Azureアプリケーションとキーを作成するには、
    1. [App registrations] >> [New application registration]に移動します。
    2. アプリケーション名を入力し、アプリケーションタイプとしてWeb app/ APIを選択して、サインオンURLを入力します。[Create]をクリックします。
    3. 作成が正常に完了したら、アプリケーションIDを表示するウィンドウが表示されます。
    4. アプリケーションキーを取得するには、[キー]に移動してキーを作成します。
    5. キーの説明と期間を入力し、[保存]をクリックします。
    6. キーが保存されると、キー値が表示されます。今後の参照用にキー値をコピーして保存します。
  5. アプリケーションにDNSゾーンへのアクセスを許可するには、
    1. すべてのDNSゾーンが作成されているリソースグループに移動するか、特定のDNSゾーンに切り替えます。
    2. Access Control(IAM)に切り替えて、[Add]をクリックします。
    3. コントリビューターとしてのロールを選択し、 Microsoft Entra ID userグループまたはアプリケーションへのアクセス権を割り当て、Microsoft Entra IDで作成されたアプリケーションを検索して選択し、[保存]をクリックします。
    4. 作成されたAzureアプリケーションには、API呼び出しを行うためのDNSゾーンへのアクセスが許可されます。
  6. 最後に、DNSゾーンを作成したグループ名であるリソースグループ名を入力し、[保存]をクリックします。
  7. DNSアカウントの詳細が保存され、[管理] >> [DNS]の下に一覧表示されます。

3.2 Cloudflare

  1. [メールアドレス]フィールドで、Cloudflareアカウントに関連付けられているメールアドレスを指定します。
    lets-encrypt-5
  2. グローバルAPIキーでは、Cloudflareのドメイン概要ページにある[APIキーを生成]オプションを使って、キーを生成し、このフィールドに値を貼り付けます。
  3. [保存]をクリックします。DNSアカウントの詳細が保存され、[管理] >> [DNS]の下に一覧表示されます。

3.3 Amazon Route 53

  1. AWSアカウントに関連付けられたアクセスキーID選択を生成して指定します。
  2. AWSアカウントをお持ちでない場合は、アカウントを作成し、以下の手順に従ってアクセスキーIDと選択を生成します:
    1. AWSコンソールにログインし、 [IAM Services] >> [Users]に移動します。
    2. [Add user]をクリックします。
    3. ユーザー名を入力し、アクセスタイプをProgrammatic accessとして選択します。
    4. 次のタブに切り替え、[Set Permissions][Attach existing policies]を直接クリックし、「AmazonRoute53FullAccess」を検索します。
    5. 一覧表示されているポリシーを割り当て、次のタブに切り替えます。
    6. タグセクションで、適切なタグ(オプション)を追加し、次のタブに切り替えます。
    7. 入力したすべての情報を確認し、[Create user]をクリックします。
    8. ユーザーアカウントが作成され、続いてアクセスキーIDと選択が生成されます。キーIDと選択をコピーして、安全な場所に保存してください。これは二度と表示されません。
  3. AWSユーザーアカウントをすでにお持ちの場合は、「AmazonRoute53FullAccess」許可をユーザーに付与し、そのユーザーがアクセスキーを持っていない場合は、生成します。また、ユーザーアカウントにすでにアクセスキーが関連付けられている場合は、必要な権限が付与されていることを確認するだけで十分です。

必要な権限を付与するには、以下の手順に従ってください:

  1. [Permissions]タブに移動し、必要なユーザーアカウントを選択して、[Add Permission]をクリックします。
  2. [Set Permissions]の下にある[Attach existing policies]をクリックし、[AmazonRoute53FullAccess]を検索します。
  3. 一覧表示されたポリシーを割り当て、[Save]をクリックします。
  4. アクセスキーを生成するには、
  5. 特定のユーザーアカウントを選択し、[Security Credentials]タブに移動します。
  6. 開いたウインドウで、[Create access]キーをクリックします。
  7. アクセスキーIDと選択が生成されます。キーIDと選択をコピーして、安全な場所に保存してください。これは二度と表示されません。
    amazon-route-53-dns

3.4 RFC2136 更新

Bind、PowerDNS等、RFC2136 更新をサポートするオープンソース DNSサーバーを使用している場合は、下の手順にしたがって、DNSベースドメインコントロール認証手続きをPAM360を使って自動化します:

  1. DNSサーバーのIPアドレス/ホスト名は、DNSサーバーがインストールまたは実行されているサーバー名/IPアドレスを表します。
  2. サーバーの詳細は、サーバーのインストールディレクトリにあります。たとえば、Bind9 DNSサーバーの場合、これらの詳細は、サーバーのインストールディレクトリにあるnamed.local.confファイルにあります。
  3. サーバーのインストールディレクトリにあるキーコンテンツであるシークレットキーを入力します。 
  4. 鍵名を入力し、アルゴリズムを選択して、[保存]をクリックします。
     
    rfc2136update

3.5 GoDaddy

GoDaddyをDNS認証に使用している場合は、下の手順にしたがって、DNSベースのドメインコントロール認証手続きをPAM360を使って自動化します。

GoDaddy APIの認証情報を取得するには、以下の手順に従ってください:

  1. GoDaddy Developerポータルに進み、[API keys]タブに切り替えます。
  2. まだログインしていない場合は、GoDaddyアカウントにログインします。
  3. ログインすると、APIキーを作成および管理できるAPIキーページにリダイレクトされます。[Create New API]キーをクリックします。
  4. お使いのアプリケーション名を入力し、環境タイプをProductionと入力して、[Next]をクリックします。
  5. APIキーとその選択が生成されます。選択は再度表示されないため、コピーして安全な場所に保存してください。

次に、PAM360インターフェイスで、下の手順にしたがって、GoDaddyをLet’s Encrypt証明書リポジトリに追加します:

  1. [証明書] >> [Let’s Encrypt]の順に移動し、右端の[管理]をクリックします。
  2. [DNS]タブに切り替えて、[追加]をクリックします。
  3. GoDaddyをDNSプロバイダドロップダウンメニューから選択します。
  4. キーと、以前GoDaddyポータルから生成した選択を入力します。[保存]をクリックします。
    godaddy-dns

3.6 ClouDNS

DNS検証にClouDNSを使用している場合は、以下の手順に従って、PAM360を使用してDNSベースのドメイン制御検証手順を自動化します:

CloudDNS APIの認証情報を取得するには、以下の手順に従ってください:

  1. ClouDNSアカウントにログインし、Reseller APIに進みます。
  2. APIユーザーIDを既に作成している場合は、API Usersの下にあります。そうでない場合は、[Create API]をクリックして新しいAPIを生成します。

CloudDNS API認証IDの詳細については、こちらをクリックしてください。

次に、PAM360インターフェイスで、下の手順にしたがって、ClouDNSをLet’s Encrypt CAに追加します:

  1. [証明書] >> [Acme] >> [Let’s Encrypt]に移動し、右端の[管理]をクリックします。
  2. [DNS]タブに切り替えて、[追加]をクリックします。
  3. DNSプロバイダドロップダウンから[CloudDNS]を選択します。
  4. 以下の選択肢から1つを選んでください:認証ID、サブ認証ID、サブ認証ユーザー
  5. 選択したClouDNS認証IDとそれぞれの認証パスワードを入力し、[保存]をクリックします。
    cloudns

3.7 DNS Made Easy

  1. 「名前」欄に、お好みの名前を入力してください。
  2. キー選択は、DNS Made Easyのウェブサイトにて「Config」 >> 「Account Information」よりご確認いただけます。それぞれの欄に詳細を入力してください。
  3. 次に、[保存]をクリックして、DNSアカウントの詳細を保存してください。保存されたDNS情報は、[管理] >> [DNS]に表示されます。
    dnsmadeeasy

メモ:

  • 1つの証明書で最大100のドメインを保護できます。[ドメイン名]フィールドには最大100個の名前を入力できます。この名前のうち、最初の名はコモンネームと見なされ、残りはサブジェクト代替名(SAN)として扱われます。
  • PAM360は、http-01およびdns-01ベースのドメイン検証をサポートしています。要件に基づいてチャレンジタイプを選択します。
  • dns-01ベースのドメイン認証では、チャレンジ認証に構成されたDNSアカウントを使用している場合、選択したDNSアカウントの状態が[管理]>>[DNS]で、[有効]になっていることを確認します。
  • 秘密鍵を変更するオプションは、現在RSA鍵アルゴリズムでのみ機能します。

4.チャレンジ検証によるドメイン検証

PAM360は、HTTP-01とDNS-01チャレンジの自動認証により、ドメイン認証を加速化します(現在は、Azure、Cloudflare、Amazon Route 53、RFC2136 更新、ClouDNS、およびGoDaddy)。自動化を有効にするには、最初にエンドサーバーの詳細をPAM360にマップする必要があります。これは、1回限りのプロセスです。

4.1 HTTP-01チャレンジ検証によるドメイン検証

Http-01チャレンジによるドメイン検証

  1. 実行するチャレンジを表示するウィンドウが開きます。
  2. [エージェントのマッピング]アイコンをクリックします。
  3. ポップアップが開きます。ドメインサーバーがLinuxマシンである場合は、必要な詳細情報を入力して、[保存]をクリックしてください。
  4. ドメインサーバーがWindowsマシンである場合は、ドメインサーバーにWindowsエージェントをダウンロードおよびインストールしてください。
  5. エージェントのマッピング設定を構成したら(エージェントのマッピングは一回限りの構成です)、Let’s Encryptが生成したチャレンジ認証をPAM360が自動的に処理します。
  6. エージェントのマッピングを設定したら、[要求の状態]で[保留中]をクリックし、[検証]をクリックします。チャレンジが検証され、証明書要求がLet’s Encrypt CAに送信されます。
    lets-encrypt-6

4.2 DNS-01チャレンジ認証によるドメイン認証

PAM360からのDNS-01チャレンジ検証の場合、

  1. Let’s Encryptタブに切り替え、証明書要求に対応する要求の状態(保留中)をクリックします。
  2. DNSチャレンジ値とTXTレコードを表示するウィンドウが表示されます。
  3. DNSアカウントの詳細を既に構成していて、証明書要求の作成時にDNSを選択している場合は、DNSアカウントを要求に割り当てることができます。 
  4. 要求を選択し、[詳細]トップメニューから[DNSの割り当て]を選択して、必要なDNSアカウントを選択します。
  5. DNSアカウントが構成されていない、または証明書要求を出したときにそれが選択されていない場合、PAM360には、エージェントのマッピングによるDNS-01チャレンジ認証を自動化するオプションがあります。
  6. 要求の左にある[エージェントのマッピング]アイコンをクリックします。エージェントのマッピングは1回限りの設定です。

開いた展開ウインドウで、以下の操作を実行して、エンドサーバー詳細をPAM360にマッピングおよび保存します。

  1. DNSプロバイダを選択します。Azureの場合、必要な詳細(サブスクリプションIDディレクトリIDアプリケーションIDキー、およびリソースグループ名)を入力します。
    lets-encrypt-7
  2. Cloudflareの場合は、Cloudflareアカウントに関連付けられているメールアドレスとグローバルAPIキーを入力します。
    lets-encrypt-8
  3. Amazon Route 53の場合、AWSアカウントに関連付けられているアクセスキーID選択を入力します。
  4. [証明書を展開]チェックボックスを有効にして、ドメインの検証後および連続した更新後に、対応するエンドサーバーへの証明書の展開を自動化します。
  5. Linuxの場合、エンドサーバーは必要な詳細を提供しますが、Windowsの場合、エンドサーバーはhttp-01チャレンジで説明したのと同じ手順を使用してWindowsエージェントをダウンロードしてインストールします。
  6. 詳細を入力したら、[保存]をクリックします。エンドユーザー詳細は、PAM360に正常にマッピングおよび保存されます。この内容は、[管理] >> [展開]タブで表示または編集できます。.

メモ:

  • Let’s Encrypt連携を使用して、パブリックドメインの証明書のみを要求および取得できます。
  • 課題の処理は、自動化せずに手動で行うこともできます。チャレンジ値/テキストレコードをコピーして、ドメインサーバーに手動で貼り付けます。次に、PAM360 Serverで、要求の状態ページに移動し、[検証]をクリックします。チャレンジが検証され、証明書が発行されます。
  • PAM360は、証明書要求についてDNSを、エージェントのマッピングが利用可能ではない場合のみ、チャレンジ認証を自動化します。チャレンジ認証は、エージェント詳細が[管理] >> [展開]タブで利用できる場合、エージェントにより自動化されます。
  • 現在、PAM360エージェントは、Windowsサーバーでのみ利用できます。
  • グローバルDNS構成をRFC2136 更新に選択した場合、ドメイン名自体がゾーン名の機能を持ちます(グローバルDNS構成は同じシークレットキーをすべてのユーザーに使用している場合のみ可能です)。また、ドメインAgent mappingを選択した場合は、ドメインごとにゾーン名、キー名、およびシークレットキーを個別に指定する必要があります。

5.証明書の調達と保存

  1. 検証が成功すると、Let’s Encryptは要求された証明書を発行します。
  2. ウィンドウは、証明書とそのステータスを表示するページに自動的にリダイレクトされます(ステータスはチャレンジ検証が成功した場合は[Available]とマークされ、チャレンジ検証が失敗した場合は[Failed]とマークされます)。
  3. [Available]ボタンをクリックすると、証明書をPAM360リポジトリに保存したり、メールで送信したり、エクスポートしたりできます。
  4. チャレンジに失敗した場合は、[New challenge]をクリックして別のチャレンジセットを取得し、上記の手順を繰り返してください。
  5. 保存時、証明書がPAM360リポジトリに追加されます。この内容は、[証明書] >> [証明書]タブで表示できます。
    lets-encrypt-9

6.Let’s Encryptにより発行された証明書の管理

このセクションでは、Let’s Encrypt認証局により発行された証明書を更新、失効、および削除する方法について説明します。

6.1 証明書の更新

Let’s Encryptが発行した証明書には、90日間のライフタイムがあるため、これ以降は無効になります。また、上記のとおり、ドメイン認証有効期間は、60日間です。ただし、ドメインの所有権を証明するには、ユーザーは、この間、60日ごとにチャレンジを満たす必要があります。

証明書の更新は、手動で実行することも、自動ドメイン検証を通じて自動的に実行することもできます。証明書を手動で更新するには、

  1. [証明書] >> [Let’s Encrypt]の順に移動します。
  2. 更新する証明書を選択して、[証明書の更新]ボタンをクリックします。
  3. 証明書が更新され、[証明書のステータス]バーに[更新済]と表示されます。
  4. クリックして、証明書の更新バージョンをPAM360証明書リポジトリに保存します。
  5. 更新履歴は、[証明書] >> [証明書]タブで証明書履歴ボタンをクリックして、参照できます。

    メモ:

    証明書は、証明書リポジトリで更新するために、更新後に保存する必要があります。それ以外の場合は、古いバージョンの証明書のみが引き続きリポジトリに残ります。

    lets-encrypt-10

自動ドメイン検証による自動更新

>

エージェントマップが構成されている場合、証明書の更新プロセスは手動の介入なしに自動的に実行されます。Let’s Encryptから取得した組織内のすべての証明書は、75日ごとに自動的に更新されます。つまり、有効期限の15日前に、アカウント所有者の電子メールアドレスに通知が送信されます。

メモ:

自動更新は、PAM360リポジトリに保存した証明書のみ適用できます。すなわち、Let’s Encryptから証明書を調達した後、自動更新が有効になるには、保存する必要があります。

6.2 証明書の失効

証明書を取り消すと、証明書が無効になり、すぐにWebサイトからHTTPSが削除されます。

証明書を取り消すには、

  1. [証明書] >> [Let’s Encrypt]タブの順に移動します。
  2. 取り消す証明書を選択し、[証明書の失効]をクリックします。
  3. 証明書は取り消され、無効になります。
    lets-encrypt-11

6.3 証明書の削除

証明書を削除すると、PAM360リポジトリから証明書が削除されますが、証明書は引き続き有効です。

証明書を削除するには、

  1. [証明書] >> [Let’s Encrypt]タブの順に移動します。
  2. 削除する証明書を選択し、[詳細] -> [削除]をクリックします。
  3. 証明書はPAM360データベースから削除されます。
    lets-encrypt-12