diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/ca/caclient-getting-started.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/ca/caclient-getting-started.mdx index a66e9443..59043076 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/ca/caclient-getting-started.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/current/ca/caclient-getting-started.mdx @@ -1,68 +1,507 @@ # 証明書の取得方法 +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; -このドキュメントでは、ScalarDL ネットワークに登録するための証明書を取得する方法について説明します。 +このドキュメントでは、ScalarDL に登録するための証明書を取得する方法について説明します。 -## 前提条件 +ScalarDL にはいくつかの種類の認証方法があります。認証方法として `digital-signature` を使用する場合は、秘密鍵と証明書ファイルを用意する必要があります。認証方法の詳細については、[ScalarDL 認証ガイド](../authentication.mdx) を参照してください。 -基本的に、CA サーバーと証明書の処理には CFSSL コンポーネントを使用します。 +## 秘密鍵と証明書の要件 -- Golang (v1.8+) のインストール -- openssl のインストール -- [cfssl & cfssljson](https://github.com/cloudflare/cfssl) のインストール +[`digital-signature`](../authentication.mdx#digital-signatures) を認証方法として使用する場合は、次の要件を満たす秘密鍵と証明書を作成する必要があります。 -### 秘密キーと CSR を生成する +- `SEC1` または `PKCS#8` 鍵 +- アルゴリズムとして `ECDSA` +- 曲線パラメータとして `P-256` +- ハッシュ関数として `SHA256` -```console -openssl ecparam -name prime256v1 -out prime256v1.pem -openssl req -new -newkey ec:prime256v1.pem -nodes -keyout client-key.pem.pkcs8 -out client.csr -openssl ec -in client-key.pem.pkcs8 -out client-key.pem -``` +:::note -または +ScalarDL は証明書の有効期限をチェックしません。そのため、ScalarDL が使用する証明書には任意の有効期限を設定できます。 -```console -cat << EOF > client-cert.json -{ - "CN": "client.example", - "key": { - "algo": "ecdsa", - "size": 256 - }, - "names": [ - { - "O": "Client Example", - "L": "Shinjuku", - "ST": "Tokyo", - "C": "JP" - } - ] -} -EOF +::: -cfssl selfsign "" ./client-cert.json | cfssljson -bare client -ls -1 -``` +## 秘密鍵と証明書ファイルを作成する -次のような結果が表示されます: + + + 自己署名証明書は次のように作成できます。 -```console -client-cert.json -client-key.pem -client.csr -client.pem -``` +:::note -### CA サーバーから証明書を取得する +この例では、`SEC1` 鍵を作成します。 -``` -cfssl sign -remote "localhost:8888" -profile "client" client.csr | cfssljson -bare client - -``` +::: -- 注記: CA エンドポイント URI を指定するには、 `-remote` オプションが必要です -- 注記: 出力キーファイルのプレフィックスを指定するには、cfssljson の `-bare` オプションが必要です + + -CA から `client.pem` という名前の証明書を取得すると、コントラクトを実行する準備がほぼ整います。 +

前提条件

+ + 次の手順では、[cfssl および cfssljson](https://github.com/cloudflare/cfssl) コマンドラインツールをインストールする必要があります。 + +

ローカル CA を作成する

+ + 1. 作業ディレクトリを作成します。 + + ```console + mkdir -p ${HOME}/scalardl/digital-signature/certs/ + ``` + + 1. 作業ディレクトリを `${HOME}/scalardl/digital-signature/certs/` に変更します。 + + ```console + cd ${HOME}/scalardl/digital-signature/certs/ + ``` + + 1. CA の情報を含む JSON ファイルを作成します。 + + ```console + cat << 'EOF' > ${HOME}/scalardl/digital-signature/certs/ca.json + { + "CN": "scalardl-example-ca", + "key": { + "algo": "ecdsa", + "size": 256 + }, + "names": [ + { + "C": "JP", + "ST": "Tokyo", + "L": "Shinjuku", + "O": "ScalarDL Example CA" + } + ] + } + EOF + ``` + + 1. CA 秘密鍵と証明書ファイルを作成します。 + + ```console + cfssl gencert -initca ca.json | cfssljson -bare ca + ``` + + 1. CA 構成を含む JSON ファイルを作成します。 + + ```console + cat << 'EOF' > ${HOME}/scalardl/digital-signature/certs/ca-config.json + { + "signing": { + "default": { + "expiry": "87600h" + }, + "profiles": { + "scalardl-example-ca": { + "expiry": "87600h", + "usages": [ + "signing", + "key encipherment", + "server auth" + ] + } + } + } + } + EOF + ``` + +

各コンポーネントの秘密鍵と証明書を作成する

+ + + + 1. ScalarDL Ledger の情報を含む JSON ファイルを作成します。 + + ```console + cat << 'EOF' > ${HOME}/scalardl/digital-signature/certs/ledger.json + { + "CN": "scalardl-ledger", + "hosts": [ + "ledger.scalardl.example.com", + "localhost" + ], + "key": { + "algo": "ecdsa", + "size": 256 + }, + "names": [ + { + "C": "JP", + "ST": "Tokyo", + "L": "Shinjuku", + "O": "ScalarDL Ledger Example" + } + ] + } + EOF + ``` + + 1. ScalarDL Ledger の秘密鍵と証明書ファイルを作成します。 + + ```console + cfssl gencert -ca ca.pem -ca-key ca-key.pem -config ca-config.json -profile scalardl-example-ca ledger.json | cfssljson -bare ledger + ``` + + 1. 秘密鍵と証明書ファイルが作成されたことを確認します。 + + ```console + ls -1 + ``` + + 次のような結果が表示されます: + + ```console + ca-config.json + ca-key.pem + ca.csr + ca.json + ca.pem + ledger-key.pem + ledger.csr + ledger.json + ledger.pem + ``` + + この場合: + + - `ledger-key.pem` は ScalarDL Ledger の秘密鍵ファイルです。 + - `ledger.pem` は ScalarDL Ledger の証明書ファイルです。 + - `ca.pem` はルート CA の証明書ファイルです。 + + + 1. ScalarDL Auditor の情報を含む JSON ファイルを作成します。 + + ```console + cat << 'EOF' > ${HOME}/scalardl/digital-signature/certs/auditor.json + { + "CN": "scalardl-auditor", + "hosts": [ + "auditor.scalardl.example.com", + "localhost" + ], + "key": { + "algo": "ecdsa", + "size": 256 + }, + "names": [ + { + "C": "JP", + "ST": "Tokyo", + "L": "Shinjuku", + "O": "ScalarDL Auditor Example" + } + ] + } + EOF + ``` + + 1. ScalarDL Auditor の秘密鍵と証明書ファイルを作成します。 + + ```console + cfssl gencert -ca ca.pem -ca-key ca-key.pem -config ca-config.json -profile scalardl-example-ca auditor.json | cfssljson -bare auditor + ``` + + 1. 秘密鍵と証明書ファイルが作成されたことを確認します。 + + ```console + ls -1 + ``` + + 次のような結果が表示されます: + + ```console + auditor-key.pem + auditor.csr + auditor.json + auditor.pem + ca-config.json + ca-key.pem + ca.csr + ca.json + ca.pem + ``` + + この場合: + + - `auditor-key.pem` は ScalarDL Auditor の秘密鍵ファイルです。 + - `auditor.pem` は ScalarDL Auditor の証明書ファイルです。 + - `ca.pem` はルート CA の証明書ファイルです。 + + + 1. クライアントの情報を含む JSON ファイルを作成します。 + + ```console + cat << 'EOF' > ${HOME}/scalardl/digital-signature/certs/client.json + { + "CN": "scalardl-client", + "hosts": [ + "client.scalardl.example.com", + "localhost" + ], + "key": { + "algo": "ecdsa", + "size": 256 + }, + "names": [ + { + "C": "JP", + "ST": "Tokyo", + "L": "Shinjuku", + "O": "ScalarDL Client Example" + } + ] + } + EOF + ``` + + 1. クライアントの秘密鍵と証明書ファイルを作成します。 + + ```console + cfssl gencert -ca ca.pem -ca-key ca-key.pem -config ca-config.json -profile scalardl-example-ca client.json | cfssljson -bare client + ``` + + 1. 秘密鍵と証明書ファイルが作成されたことを確認します。 + + ```console + ls -1 + ``` + + 次のような結果が表示されます: + + ```console + ca-config.json + ca-key.pem + ca.csr + ca.json + ca.pem + client-key.pem + client.csr + client.json + client.pem + ``` + + この場合: + + - `client-key.pem` はクライアントの秘密鍵ファイルです。 + - `client.pem` はクライアントの証明書ファイルです。 + - `ca.pem` はルート CA の証明書ファイルです。 + + + +
+ + +

前提条件

+ + 次の手順を実行するには、`openssl` コマンドラインツールをインストールする必要があります。 + +

作業ディレクトリを作成する

+ + 1. 作業ディレクトリを作成します。 + + ```console + mkdir -p ${HOME}/scalardl/digital-signature/certs/ + ``` + + 1. 作業ディレクトリを `${HOME}/scalardl/digital-signature/certs/` に変更します。 + + ```console + cd ${HOME}/scalardl/digital-signature/certs/ + ``` + +

各コンポーネントの秘密鍵と証明書を作成する

+ + + 1. EC パラメータを作成します。 + + ```console + openssl ecparam -name prime256v1 -out prime256v1.pem + ``` + + 1. 秘密鍵と CSR を作成します。 + + ```console + openssl req -new -newkey ec:prime256v1.pem -nodes -keyout ledger-key.pem -out ledger.csr + ``` + + 1. `PKCS#8` 鍵を `SEC1` 鍵に変換します。 + + ```console + openssl ec -in ledger-key.pem -out ledger-key.pem + ``` + + 1. ScalarDL Ledger の証明書を作成します。 + + ```console + openssl x509 -req -days 3650 -signkey ledger-key.pem -in ledger.csr -out ledger.pem + ``` + + 1. 秘密鍵と証明書ファイルが作成されたことを確認します。 + + ```console + ls -1 + ``` + + 次のような結果が表示されます: + + ```console + ledger-key.pem + ledger.csr + ledger.pem + prime256v1.pem + ``` + + この場合: + + - `ledger-key.pem` は ScalarDL Ledger の秘密鍵ファイルです。 + - `ledger.pem` は ScalarDL Ledger の証明書ファイルです。 + + + 1. EC パラメータを作成します。 + + ```console + openssl ecparam -name prime256v1 -out prime256v1.pem + ``` + + 1. 秘密鍵と CSR を作成します。 + + ```console + openssl req -new -newkey ec:prime256v1.pem -nodes -keyout auditor-key.pem -out auditor.csr + ``` + + 1. `PKCS#8` 鍵を `SEC1` 鍵に変換します。 + + ```console + openssl ec -in auditor-key.pem -out auditor-key.pem + ``` + + 1. ScalarDL Auditor の証明書を作成します。 + + ```console + openssl x509 -req -days 3650 -signkey auditor-key.pem -in auditor.csr -out auditor.pem + ``` + + 1. 秘密鍵と証明書ファイルが作成されたことを確認します。 + + ```console + ls -1 + ``` + + 次のような結果が表示されます: + + ```console + auditor-key.pem + auditor.csr + auditor.pem + prime256v1.pem + ``` + + この場合: + + - `auditor-key.pem` は ScalarDL Auditor の秘密鍵ファイルです。 + - `auditor.pem` は ScalarDL Auditor の証明書ファイルです。 + + + 1. EC パラメータを作成します。 + + ```console + openssl ecparam -name prime256v1 -out prime256v1.pem + ``` + + 1. 秘密鍵と CSR を作成します。 + + ```console + openssl req -new -newkey ec:prime256v1.pem -nodes -keyout client-key.pem -out client.csr + ``` + + 1. `PKCS#8` 鍵を `SEC1` 鍵に変換します。 + + ```console + openssl ec -in client-key.pem -out client-key.pem + ``` + + 1. クライアントの証明書を作成します。 + + ```console + openssl x509 -req -days 3650 -signkey client-key.pem -in client.csr -out client.pem + ``` + + 1. 秘密鍵と証明書ファイルが作成されたことを確認します。 + + ```console + ls -1 + ``` + + 次のような結果が表示されます: + + ```console + client-key.pem + client.csr + client.pem + prime256v1.pem + ``` + + この場合: + + - `client-key.pem` はクライアントの秘密鍵ファイルです。 + - `client.pem` はクライアントの証明書ファイルです。 + + +
+
+
+ + [CFSSL サーバー](./caserver-getting-started.mdx) に証明書ファイルの作成を依頼できます。 + +

前提条件

+ + 次の手順では、[cfssl および cfssljson](https://github.com/cloudflare/cfssl) コマンドラインツールをインストールする必要があります。 + +

秘密鍵と証明書ファイルを作成する

+ + 1. CFSSL や OpenSSL などのツールを使用し、[要件](#private-key-and-certificate-requirements) に基づいて秘密鍵と CSR を作成します。[CFSSL](?methods=self-signed&tools=cfssl) タブで `cfssl` コマンドを使用して秘密鍵と CSR を作成する例を確認できます。また、[OpenSSL](?methods=self-signed&tools=openssl) タブで `openssl` コマンドを使用して秘密鍵と CSR を作成する例を確認できます。 + + 1. CFSSL サーバーから証明書を要求します。 + + :::note + + - CFSSL サーバーエンドポイント URI を指定するには、`-remote` オプションが必要です。 + - 出力される鍵ファイルのプレフィックスを指定するには、cfssljson の `-bare` オプションが必要です。 + + ::: + + + + + ```console + cfssl sign -remote ":" -profile "ledger" ledger.csr | cfssljson -bare ledger - + ``` + + CFSSL サーバーから `ledger.pem` という名前の証明書を取得します。その証明書を ScalarDL Ledger に使用できます。 + + + + ```console + cfssl sign -remote ":" -profile "auditor" auditor.csr | cfssljson -bare auditor - + ``` + + CFSSL サーバーから `auditor.pem` という名前の証明書を取得します。その証明書を ScalarDL Auditor に使用できます。 + + + + ```console + cfssl sign -remote ":" -profile "client" client.csr | cfssljson -bare client - + ``` + + CFSSL サーバーから `client.pem` という名前の証明書を取得します。その証明書をクライアントに使用できます。 + + +
+ + 証明書ファイルを作成するために、サードパーティ CA またはプライベート CA を利用できます。証明書ファイルの作成方法の詳細については、利用するサードパーティ CA またはプライベート CA にお問い合わせください。 + +