背景
Symbol shoestring v0.2.1 より、ノード証明書更新の際、秘密鍵を維持できるオプション --retain-node-key
が追加されました。
コマンドで更新する際にはオプションを指定できるのですが、 wizard だとオプションを指定する方法がありません。
本記事は、 wizard でノード秘密鍵を維持して証明書を更新した際の作業ログとなります。
本記事の内容を実施する際は自己責任でお願いします。
事前準備
shoestring v0.2.1 をインストール、またはアップグレードします。
執筆時点、この記事が必要となる多くの方は shoestring v0.1.x でノードを構築された方だと思います。
shoestring v0.2.1 へのアップグレード方法は以下の記事を参考にしてください。
あと、念のためバックアップを取りましょう。
コード修正
wizard から更新した際のコマンドにオプションをつけるため、コードを修正します。
以降は vim での操作例を示します。
- shoestring パッケージの格納場所を確認します
$ pip show symbol-shoestring Name: symbol-shoestring Version: 0.2.1 Summary: Symbol Shoestring Deployment Tool Home-page: https://github.com/symbol/product/tree/main/tools/shoestring Author: Symbol Contributors Author-email: [email protected] License: MIT Location: {ここに格納場所のパスガ出力されます} Requires: aiohttp, jinja2, prompt-toolkit, pyyaml, requests, symbol-lightapi, symbol-sdk-python, websockets, zenlog Required-by:
- shoestring パッケージの格納場所をカレントディレクトリにします
$ cd {前手順の Location に表示されたパス}
- 対象ファイルを vim で開きます
$ vi shoestring/wizard/ShoestringOperation.py
-
:set number
を入力してEnter
します
-> 行番号が表示されます -
:set list
を入力してEnter
します
-> タブ文字等の不可視文字が表示されます -
i
を入力して挿入モードにします - 64行目に、ノード秘密鍵を維持するためのオプションを設定するコードを追加します
以下のコードをコピー&ペーストしますif ShoestringOperation.RENEW_CERTIFICATES == operation: shoestring_args.extend(['--retain-node-key'])
ここで、 ^I
はタブ文字を示します。
Python ではインデントの種類が異なるとエラーとなってしまいます。
shoestring コードではインデントの種類としてタブ文字が採用されているため、追記するコードのインデントもタブ文字にする必要があります。
このため、もしも ^I
ではなくスペースとなっている場合、タブ文字に変更する必要があります。
- コード前のスペースを全て削除します
- 1行目の先頭で1回、2行目の先頭で2回、
Ctrl-v Tab
を入力します
コードの修正が完了したら保存して閉じます。Esc
でコマンドモードに戻り、 :wq!
を入力して Enter
します。
証明書更新
秘密鍵が維持されているか確認するため、現在のノード秘密鍵を確認しておきます。
以降、ノードディレクトリは ~/symbol
(wizard で setup する際のデフォルト)とします。
$ openssl pkey -in ~/symbol/keys/cert/node.key.pem -noout -text
ED25519 Private-Key:
priv:
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:
**:**
pub:
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:
**:**
shoestring wizard を起動します。
$ python3 -m shoestring.wizard
ノードディレクトリ、 ca.key.pem ファイルパスを入力して Next
を選択します。
確認画面が出るので Finish
を選択します。
これで証明書が更新されます。
$ openssl x509 -noout -dates -in ~/symbol/keys/cert/node.crt.pem
notBefore=Jun 7 16:32:39 2025 GMT
notAfter=Jun 17 16:32:39 2026 GMT
証明書更新後の秘密鍵を確認します。
$ openssl pkey -in ~/symbol/keys/cert/node.key.pem -noout -text
ED25519 Private-Key:
priv:
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:
**:**
pub:
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:
**:**
この出力内容が証明書更新前と同じになっているはずです。
Views: 0