LibreSSL: openssl エラー - v3_ca エクステンションが存在しない

作成
( 更新 )
@nabbisen

opensslLibreSSL ユーティリティの一つです。OpenBSD6.7 において、こちらを使って v3_ca エクステンションでルートならびに中間証明書を生成しようとすると、エラーが発生しました。

これは /etc/ssl/openssl.cnf にデフォルトで [ v3_ca ] セクションが存在しなかったためです。 解決方法は、必要に応じてバックアップを取得した後に、このセクションを追加することです。

$ doas cp -p /etc/ssl/openssl.cnf /etc/ssl/openssl.cnf.org
$ doas nvim /etc/ssl/openssl.cnf

[ v3_ca ] セクションを追加します:

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

余談ですが私がこのエラーに遭遇したのは、PostgreSQL のサーバーとクライアント間で TLS 接続を確立しようとした時でした。以下のようなエラーが発生しました:

$ # create a root certificate authority
[...]
$ openssl x509 -req -in root.csr -text -days 36500 -extfile /etc/ssl/openssl.cnf -extensions v3_ca -signkey root.key -out root.crt
Error Loading extension section v3_ca

Series

Secure Connection
  1. LibreSSL: openssl エラー - v3_ca エクステンションが存在しない
  2. PostgreSQL 12: TLS 接続
  3. PostgreSQL 14: TLS 接続
  4. OpenBSD acme-client で Let's Encrypt 証明書を取得する

Comments or feedbacks are welcomed and appreciated.