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