# カスタム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などのトンネルサービスを利用すると、オートメーター側で証明書を用意しなくても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を使用します。\
\&#xNAN;**`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コマンドプロンプト]** をクリックします。

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

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

The question should be specific, self-contained, and written in natural language.
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.
