> For the complete documentation index, see [llms.txt](https://docs.keeper.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keeper.io/sso-connect-cloud/jp/device-approvals/automator/custom-ssl-certificate.md).

# カスタムSSL証明書

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2Fi3rvbkQ8WFF18BqOT1tP%2FCreate%20Certificate.jpg?alt=media&#x26;token=a40111ac-6d90-46c3-aa96-17c0055778f9" alt=""><figcaption></figcaption></figure>

## 概要

Keeperオートメーターは、Keeperバックエンドと、カスタマー環境で動作するオートメーターサービスとの間の通信を暗号化します。

オートメーターのホスト名は、KeeperクラウドからパブリックDNSで名前解決できる必要があります。イングレス (受信) は[Keeperの特定IPアドレス](/sso-connect-cloud/jp/device-approvals/automator/ingress-requirements.md)に限定してください。ヘルスチェックや検証のためにオフィスネットワークなど追加のネットワークからアクセスする場合は、その送信元を別途許可してください。

カスタム証明書を使用しない場合、Keeperオートメーターはデフォルトで自己署名証明書を生成します。これによりテスト用途ではオートメーターを起動して動作させられますが、本番環境では有効なSSL暗号化が必要です。

オートメーターのデプロイにおけるSSL証明書の管理方法はいくつかあります。

* [Azure Container Apps](/sso-connect-cloud/jp/device-approvals/automator/azure-container-app.md)、[Azure App Services](/sso-connect-cloud/jp/device-approvals/automator/azure-app-services.md)、[Google Cloud](/sso-connect-cloud/jp/device-approvals/automator/google-cloud-with-gcp-cloud-run.md) などの一部のクラウド環境では、SSL/TLS通信の処理をプラットフォーム側が行うため、オートメーター側で証明書を設定する必要がありません。
* [Cloudflare Connectors](#cloudflare-connectors)などのトンネルサービスを利用すると、オートメーター側で証明書を用意しなくてもTLSレイヤーを適用できます。
* [ZeroSSL](https://zerossl.com/)を利用すれば、簡単かつ迅速に無料のSSL証明書を取得できます。
* OpenSSLを使用して各手順を細かく制御したい場合は、以下の手順に従って設定することもできます。

## SSL証明書の生成と準備

Keeperオートメーターには、公的認証局によって署名された有効なSSL証明書が必要です。SSL証明書を生成するプロセスはプロバイダによって異なりますが、ここでは一般的なフローを記載します。

以下の手順で、オートメーターの実行に必要な2つの証明書ファイル (`ssl-certificate.pfx` および `ssl-certificate-password.txt`) を作成します。

1. OpenSSLコマンドプロンプトを使用して秘密鍵を生成します。

```
openssl genrsa -out automator.key
```

2. オートメーターに使用する予定のホスト名を使用してCSRを生成します。この例では `automator.lurey.com` を使用します。Common Nameはドメインと完全に一致する必要があります。

```
openssl req -new -key automator.key -out automator.csr

Country Name (2 letter code) [XX]:US
State or Province Name (full name) []:Illinois
Locality Name (eg, city) [Default City]:Chicago
Organization Name (eg, company) [Default Company Ltd]:Company, LLC
Organizational Unit Name (eg, section) []:Engineering
Common Name []:automator.yourcompany.com
Email Address []:webmaster@yourcompany.com
```

3. SSL証明書を購入するか90日間の無料証明書を取得し、CSRをSSL証明書プロバイダに送信します。

{% hint style="warning" %}
オートメーターインスタンス用に作成したSSL証明書は、この目的にのみ使用してください。他のサービスと共有されているワイルドカード証明書は使用しないでください。
{% endhint %}

プロバイダをまだお持ちでない場合は、<https://www.ssls.com/>を利用できます。1つのドメイン向けの最も安価なSSL証明書で問題ありません。

`automator.company.com` など、オートメーター専用のドメイン向けに**URLを選択**し、証明書を作成します。

SSL証明書プロバイダは、署名付き証明書 (`.crt` ファイル) と中間CA証明書を含むzipファイルを配信します。バンドルのファイル拡張子は `.crt` または `.ca-bundle` です。このファイルを、前に作成した `.key` ファイルと同じ場所に解凍します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FjdBGZqJfp4Ev90lkSelt%2Fcert%20files.png?alt=media&#x26;token=986529e6-d5c0-4f0f-ad69-5750b65ddcc2" alt=""><figcaption><p>.keyファイルと同じ場所にzipファイルを解凍</p></figcaption></figure>

4. 証明書が発行されたあと、OpenSSLを使用して完全な証明書チェーン (ルート、中間、CA証明書) を含む `.pfx` 形式に変換する必要があります。

{% hint style="info" %}
[Windows](#windows) では、OpenSSLコマンドプロンプトを起動し、ファイルが存在するフォルダへ移動してください。
{% endhint %}

{% code overflow="wrap" %}

```
openssl pkcs12 -export -out ssl-certificate.pfx -inkey automator.key -in automator.yourcompany.com.crt -certfile automator.yourcompany.com.ca-bundle
```

{% endcode %}

エクスポートパスワードを設定してから、`ssl-certificate-password.txt` という名前の新しいテキストファイルを作成し、そのファイルにエクスポートパスワードを入力して保存します。

* `automator.key` は手順1で生成された秘密鍵です。
* `automator.yourcompany.com.crt` は手順3で配信された署名付き証明書です。
* `automator.yourcompany.com.ca-bundle` はCAバンドルです。
* `ssl-certificate.pfx` は、オートメーターで使用される、パスワードで暗号化された出力ファイルです。
* `ssl-certificate-password.txt` には、`.pfx` ファイルの暗号化に使用されるパスワードが含まれています。

5つのファイルすべてをKeeperボルトに保存することを推奨します。

{% hint style="warning" %}
`.pfx` ファイルに、発行した証明書とプロバイダからの完全な証明書チェーンが含まれていることを確認してください。完全な証明書チェーンが含まれていない場合、通信が失敗し、オートメーターがURLに接続できません。\
\
`.pfx` を確認するには `openssl` を使用します。\
**`openssl pkcs12 -in ssl-certificate.pfx -info`**\
\
`.pfx` が正しい場合、3つの証明書が表示されます。

証明書が1つしか表示されない場合、または4つまたは5つの証明書が表示される場合は、`.pfx` が正しくないため、プロセスを繰り返す必要があります。
{% endhint %}

5. `ssl-certificate.pfx` と `ssl-certificate-password.txt` を保存し、後述のデプロイ手順で使用できるようにします。\
   \
   サービスを更新したり証明書を再キーしたりするときに参照できるよう、ファイルをKeeperボルトにバックアップしておいてください。
6. 以下に記載されている[年次証明書更新プロセス](#annual-renewal-process)を確認してください。

## Windows

### SSL証明書の生成と準備

Keeperオートメーターには、公的認証局によって署名された有効なSSL証明書が必要です。自己署名証明書は使用できません。SSL証明書を生成するプロセスはプロバイダによって異なりますが、ここでは一般的なフローを記載します。

OpenSSLをダウンロードしてインストールします。サードパーティ (slproweb.com) がバイナリインストーラーを作成しています。一般的なバイナリインストーラーは以下をご参照ください。

<https://slproweb.com/products/Win32OpenSSL.html>\
\
下部にある**Win32 OpenSSL vX.X.X Light**というバージョンをインストールします。

インストール中はデフォルトのオプションを選択できます。Microsoft Visual Studio拡張機能のインストールを求められる場合があります。OpenSSLのセットアップを完了する前に、この拡張機能をインストールしてください。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FTbwK3F38XztRI8jDtUvV%2FScreen%20Shot%202021-11-07%20at%2012.12.07%20PM.png?alt=media&#x26;token=22d28f37-8a0c-4274-a2e3-a293489f591d" alt=""><figcaption><p>Visual Studioコンポーネントのインストール</p></figcaption></figure>

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FP2PQbDoTYM9BHJMKYmXU%2FScreen%20Shot%202021-11-07%20at%2012.12.18%20PM.png?alt=media&#x26;token=74b82ebb-3987-4bea-8d40-abe2d465098a" alt=""><figcaption><p>OpenSSLのインストール</p></figcaption></figure>

OpenSSLコマンドプロンプトを実行します。

スタートメニューにOpenSSLフォルダがあるので、**\[Win32 OpenSSL Command Prompt]** をクリックします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FUdkv01u7vQSsg1mMD8HF%2FScreen%20Shot%202021-10-14%20at%201.29.18%20PM.png?alt=media&#x26;token=7875fd99-9090-44c7-be0e-f407d7144128" alt=""><figcaption><p>OpenSSLコマンドプロンプト</p></figcaption></figure>

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FkgSpciuEyHgPUy3jqoTj%2FScreen%20Shot%202021-10-14%20at%201.34.42%20PM.png?alt=media&#x26;token=099c799e-7593-40a3-a0a0-112a885aebce" alt=""><figcaption><p>OpenSSLコマンドプロンプト</p></figcaption></figure>

## Cloudflare Connectors

Cloudflare Connectorsを利用すると、オートメーター側でSSL証明書を設定しなくても通信を暗号化できます。Cloudflareを使用する手順は以下のとおりです。

### 1. ドメインをCloudflareに追加

1. [Cloudflareダッシュボード](https://dash.cloudflare.com/)にログインします。
2. **ドメインのオンボーディング**
   * **\[Onboard a Domain]** をクリックし、`example.com` などのドメイン名を入力します。
   * Cloudflareのプラン (無料または有料) を選択します。
3. **DNSレコードの確認と構成**
   * Cloudflareが既存のDNSレコードを自動検出します。
   * 内容を確認し、必要に応じて修正します。
4. **ネームサーバーの更新**
   * Cloudflareから2つのネームサーバーが提示されます。
   * ドメインレジストラでこれらのネームサーバーに変更します。
   * **DNSの反映を待ちます** (最大24時間かかる場合があります)。
5. **SSL/TLSの有効化**
   * Cloudflareダッシュボードで **\[SSL/TLS]** に移動します。
   * SSLモードを **\[Full]** または **\[Full (strict)]** に設定し、安全な接続を有効にします。

### 2. Cloudflareトンネルの作成

1. Zero Trustダッシュボードにアクセス
   * [Cloudflare Zero Trust](https://one.dash.cloudflare.com/)に移動し、**\[Networks]** > **\[Connectors]** を開きます。
2. **トンネルの作成**
   1. **\[Create a tunnel]** をクリックし、コネクタータイプとして **\[Cloudflared]** を選択します。
   2. トンネル名を設定します (例: `automator-service-tunnel`)。
   3. ネットワーク内のマシンにcloudflaredクライアントをインストールします。このマシンは、オートメーターを実行するマシンと同一でも、通信可能な別のマシンでも構いません。
3. **公開ホスト名の作成**
   * トンネル設定中に、公開ホスト名を定義します (例: `automator.yourdomain.com`)。パスは空欄のままにします。
   * **接続先の設定**
     * TypeにはHTTPを指定します。
     * Service URLには `http://<HOSTNAME>:<PORT>` を指定します。`HOSTNAME` はオートメーターを実行しているマシンのIPアドレスまたはホスト名、`PORT` はオートメーターで使用しているポート番号です。

### 3. オートメーターの設定

* **環境変数の設定**\
  オートメーターをセットアップする際に、`SSL_MODE` 環境変数 (または設定項目) を `none` に設定します。SSL証明書用の設定やボリュームは指定しません。
* **コマンダーでの構成**\
  Keeperコマンダーの `automator edit` コマンドを使用してオートメーターを設定します。手順2で設定したトンネルのホスト名 (例: `https://automator.yourdomain.com`) をURLとして指定します。

***

## 毎年の更新プロセス <a href="#annual-renewal-process" id="annual-renewal-process"></a>

毎年SSL証明書の更新が必要です。ほとんどの証明書プロバイダーで新しい証明書を生成できます。証明書の更新後、オートメーターインスタンス内の `.pfx` 証明書ファイルを置き換えてからサービスを再起動します。ファイルの更新とサービスの再起動の正確な手順は、特定のオートメーターインストール方法のドキュメントをご参照ください。

### AD FSを使用した環境の場合

IDプロバイダとしてAD FSを使用してKeeperオートメーターを利用している場合、以下の手順でKeeper証明書を更新するまでログインできません。

* Keeper管理コンソールにログインします。
* **\[管理者]** > **SSOノード** > **\[プロビジョニング]** に移動し、SSOクラウド設定を表示します。
* **\[SP証明書をエクスポート]** をクリックします。
* AD FS管理コンソールで、KeeperクラウドSSO証明書利用者信頼プロパティを選択します。
* **\[暗号化]** タブで、古い証明書をこの新しい証明書に置き換えます。
* **\[署名]** タブで、新しいSP証明書をこの新しい証明書に置き換えます。

### 証明書の更新後にログインの問題が発生した場合

証明書の更新後、IDプロバイダで新しいSP証明書を発行する必要がある場合があります。以下がその手順です。

* Keeper管理コンソールにログインします。
* **\[管理者]** > **SSOノード** > **\[プロビジョニング]** に移動し、SSOクラウド設定を表示します。
* **\[SP証明書をエクスポート]** をクリックして証明書ファイルを保存します。
* **\[メタデータのエクスポート]** をクリックして、証明書が含まれるメタデータファイルを保存します。
* IDプロバイダポータルにログインし、KeeperのSSO設定を表示します。
* サービスプロバイダーの証明書更新の指示に従って、KeeperのSP証明書ファイル (または必要に応じてメタデータ) をアップロードし、保存します。

オートメーターサービスは実質的にサービスプロバイダとして機能するため、署名にはカスタマーが用意したSSL証明書が使用されます。

### AzureおよびAWSでのデプロイ

SSLを終端するカスタムドメインを持つアプリケーションゲートウェイまたはロードバランサーを利用する環境でSSL証明書を更新する場合は、そのデバイス上の証明書も更新する必要があります。

* App Gatewayを使用したAzureデプロイの場合、ゲートウェイのHTTPSリスナーで `.pfx` 証明書も更新する必要があります。**\[Azure]** > **\[リソースグループ]** > **\[アプリゲートウェイ]** > **\[リスナー]** に移動し、新しい証明書をアップロードします。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.keeper.io/sso-connect-cloud/jp/device-approvals/automator/custom-ssl-certificate.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
