※こちらは旧サイトです(新サイトはこちら)
いつも使ってるオレオレ証明書発行スクリプトがエラーになるので調べた際のメモ
だいぶ端折ってますが、該当箇所はだいたいこんな感じ
$ cat ca.sh
C="JP" # Country Name
ST="Osaka" # State or Province Name
L="Imakoko" # Locality Name
O="" # Organization Name
OU="" # Organizational Unit Name
CN="hoge.example.com" # Common Name
E="hoge@example.com" # Email Address
/usr/bin/openssl req -sha256 -new -key ${1}.pem -out ${1}_csr.pem -subj "/C=$C/ST=$ST/L=$L/O=$O/OU=$OU/CN=$CN/emailAddress=$E/"
139777958999296:error:0D07A098:asn1 encoding routines:ASN1_mbstring_ncopy:string too short:../crypto/asn1/a_mbstr.c:102:minsize=1
該当箇所のコードを見てみると、minsize=1というのは、最低文字数制限の事らしい
ので、空白で実行していた「Organization Name」と「Organizationnal Unit Name」にも何らかの値をセットするか、もしくは、実行時点で「O」と「OU」を省略する事で通りました
// 変更前
/usr/bin/openssl req -sha256 -new -key ${1}.pem -out ${1}_csr.pem -subj "/C=$C/ST=$ST/L=$L/O=$O/OU=$OU/CN=$CN/emailAddress=$E/"
// 変更後
/usr/bin/openssl req -sha256 -new -key ${1}.pem -out ${1}_csr.pem -subj "/C=$C/ST=$ST/L=$L/CN=$CN/emailAddress=$E/"