openssl
は LibreSSL ユーティリティの一つです。OpenBSD の 6.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