0

libressl次のバージョンの Alpine で使用しています。

$ cat /etc/os-release 
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.14.2
PRETTY_NAME="Alpine Linux v3.14"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://bugs.alpinelinux.org/"
$ libressl version -a
LibreSSL 3.3.3
built on: date not available
platform: information not available
options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx) 
compiler: information not available
OPENSSLDIR: "/etc/ssl"

次のopenssl.cnfファイルを使用しています

# default section for variable definitions

DN                 = ca_dn
DISTINGUISHED_NAME = ${ENV::DN}

# certificate request configuration

[ req ]
default_bits       = 2048
default_md         = sha256
encrypt_key        = no
prompt             = no
string_mask        = utf8only
distinguished_name = ${DISTINGUISHED_NAME}

[ ca_dn ]
C                      = SE
ST                     = Stockholm County
L                      = Stockholm
O                      = Organization
OU                     = Unit
CN                     = Name 1
emailAddress           = user@domain.com

# certificate authority configuration

[ ca_ext ]
authorityKeyIdentifier = keyid, issuer
subjectKeyIdentifier   = hash
basicConstraints       = critical, CA:TRUE, pathlen:1
keyUsage               = critical, keyCertSign, cRLSign

# another distinguished name
[ other_dn ]
C                      = SE
ST                     = Stockholm County
L                      = Stockholm
O                      = Organization
OU                     = Unit
CN                     = Name 2

環境変数を使用して、異なる識別名で生成された証明書を取得しようとしています。これまでのところ、私が望むものを達成できませんでした:

$ printenv DN
$ libressl req  -newkey rsa:4096 -x509 -days 3650           \
                -keyout certs/ca.key -out certs/ca.crt      \
                -config certs/openssl.cnf -extensions ca_ext
$ libressl x509 -noout -subject -in certs/ca.crt 
subject= /C=SE/ST=Stockholm County/L=Stockholm/O=Organization/OU=Unit/CN=Name 1/emailAddress=user@domain.com
$ export DN=other_dn
$ printenv DN
other_dn
$ libressl req  -newkey rsa:4096 -x509 -days 3650           \
                -keyout certs/ca.key -out certs/ca.crt      \
                -config certs/openssl.cnf -extensions ca_ext
$ libressl x509 -noout -subject -in certs/ca.crt 
subject= /C=SE/ST=Stockholm County/L=Stockholm/O=Organization/OU=Unit/CN=Name 1/emailAddress=user@domain.com

インターネットで同様の問題を検索する仕事をしたと思いますが、正確な状況(および解決策)はまだ思いつきません。SAN を設定するときに環境変数を利用する方法を示す例はありますが、ユーザーが環境変数を介して DN を変更しようとするケースは見当たりませんでした。

次の質問があります。

  1. 私が達成しようとしていること (つまり、構成ファイル内に異なる DN を持ち、環境変数を介してそれらを適切に選択すること) はまったく実行できませんか?
  2. 前の質問に対する答えが「いいえ、達成できます」の場合、環境変数をどのように使用できますか?

上記の最小限の(機能しない)例のみを共有したことに注意してください。実際のケースでは、同じ CA の下にあるさまざまなサーバーとクライアントに対して、要求と x509 拡張オプションを適切にエンコードする、より長い構成ファイルがあります。完全な構成ファイルが必要な場合は、質問を更新して機密情報を削除し、完全な構成ファイルを貼り付けることができるようにお知らせください。

私はあなたの時間と助けに前もって感謝します.私は私の問題を解決するための指針や建設的なフィードバックを楽しみにしています.

4

0 に答える 0