メインコンテンツまでスキップ

Symbol ノード証明書

1. Symbol ノード証明書の作成

1.1 作業ディレクトリの準備

証明書作成用のディレクトリを作成し、移動します。

mkdir certs
cd certs

証明書管理に必要なサブディレクトリとファイルを作成します。

mkdir new_certs
touch index.txt

1.2 CA証明書の秘密鍵作成

1.2.1 ランダムな秘密鍵の作成

ランダムな秘密鍵を生成します。

openssl genpkey -algorithm ed25519 -outform PEM -out ca.key.pem

1.2.2 16進数文字列から秘密鍵を作成

302e020100300506032b657004220420 を先頭に付けて、16進数DER形式に変換し、PEM形式に変換します。

echo "302e020100300506032b657004220420""<秘密鍵の16進数文字列>" | xxd -r -p > ca.key.der
openssl pkey -inform DER -in ca.key.der -out ca.key.pem
openssl pkey -in ca.key.pem -pubout -out ca.pubkey.pem

1.3 Node証明書の秘密鍵作成

Node証明書の秘密鍵 node.key.pem も、CA証明書秘密鍵と同じ手順で作成します。 (1.2.1 または 1.2.2 の方法で node.key.pem を作成してください)

1.4 CA証明書の作成

CA証明書を作成するための設定ファイル ca.cnf を用意します。

certs/ca.cnf
[ca]
default_ca = CA_default

[CA_default]
new_certs_dir = ./new_certs
database = index.txt
serial = serial.dat
private_key = ./ca.key.pem
certificate = ca.crt.pem
policy = policy_catapult

[policy_catapult]
commonName = supplied

[req]
prompt = no
distinguished_name = dn
x509_extensions = x509_v3

[dn]
CN = Symbol CA

[x509_v3]
basicConstraints = critical,CA:TRUE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer

[x509_v3_node]
basicConstraints = CA:FALSE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer

CA証明書を作成します。 -days オプションで証明書の有効期限(日数)を指定します。

openssl req \
-config ca.cnf \
-keyform PEM \
-key ca.key.pem \
-new -x509 \
-days 7300 \
-out ca.crt.pem \
-extensions x509_v3

1.5 Node証明書署名要求(CSR)の作成

Node証明書を作成するための設定ファイル node.cnf を用意します。

certs/node.cnf
[req]
prompt = no
distinguished_name = dn

[dn]
CN = Symbol Node

Node証明書署名要求(CSR)を作成します。

openssl req -config node.cnf -key node.key.pem -new -out node.csr.pem

1.6 Node証明書の作成

証明書発行管理に必要な「シリアル番号ファイル」を作成します。

openssl rand -out ./serial.dat -hex 19

CA証明書で署名したNode証明書を作成します。 -days オプションで証明書の有効期限(日数)を指定します。

openssl ca \
-config ca.cnf \
-days 375 \
-notext -batch \
-in node.csr.pem \
-out node.crt.pem \
-extensions x509_v3_node

1.7 証明書の結合

Node証明書とCA証明書を結合して node.full.crt.pem を作成します。

cat node.crt.pem > node.full.crt.pem
cat ca.crt.pem >> node.full.crt.pem

2. Node証明書の更新

2.1 Node証明書の失効

Node証明書を更新する場合は、まず古い証明書を失効させます。

openssl ca -config ca.cnf -revoke node.crt.pem

2.2 Node証明書の更新

作成時と同じ手順でCSRを作成し、CA証明書で署名します。

openssl req -config node.cnf -key node.key.pem -new -out node.csr.pem
openssl rand -out ./serial.dat -hex 19
openssl ca -config ca.cnf -days 375 -notext -batch -in node.csr.pem -out node.crt.pem -extensions x509_v3_node
cat node.crt.pem > node.full.crt.pem
cat ca.crt.pem >> node.full.crt.pem